在單片機的開發中經常遇見過要在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;
}