单片机编程中的整形转换为字符串的详解

在单片机的开发中经常遇见过要在OLED或1602等中显示一些数字,但在程序中计算的是整形数据,需要把整形数据转换为字符型的数组才能显示。因此下面提供一种方法给大家参考,当然也有其他的方法

void Init_To_String(uchar *String,int Init_Data)
{
    if(Init_Data < 0)
    {
        Init_Data=-Init_Data;
        *String='-';
    }
    else *String=' ';
    
//这里整形的Init_Data最大值为65535时16位的二进制数,所以除以10000得出最高位的数,后面加0X30是为了对应上ASCII表中相应的字符。数字0-9的ASCII表中的值为(十六进制)0X30-0X39,
//这里用到指针,其实是一组数组通过指针访问保存数据
    *++String =Init_Data/10000+0x30;
//这里的求余运算是为了去掉最高位,继续执行下面的转换。    
    Init_Data=Init_Data%10000;   

//这里继续上面的操作一位一位地转换为字符型数据
    *++String =Init_Data/1000+0x30;
    Init_Data=Init_Data%1000;   

    *++String =Init_Data/100+0x30;
    Init_Data=Init_Data%100;   
    *++String =Init_Data/10+0x30;
    Init_Data=Init_Data%10;     
    *++String =Init_Data+0x30;     
}

 

你可能感兴趣的:(单片机编程中的整形转换为字符串的详解)