單片機編程中的整形轉換爲字符串的詳解

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章