單片機(jī)中unsigned char轉(zhuǎn)字符串的方法
在單片機(jī)中,常用到數(shù)字與字符的方法,在C中都是使用itoa函數(shù),C51也有這個(gè)函數(shù),但是,8051的RAM是很有限的,所以盡量避免使用int型,常用的是unsigned char。當(dāng)需要轉(zhuǎn)換成字符串時(shí)用itoa的話,還是有點(diǎn)浪費(fèi)。還是自力更生,自己寫了一個(gè),代碼如下:
typedef unsigned char BYTE;
BYTE * ByteToStr(BYTE n)
{
BYTE str[4];
BYTE * pStr;
pStr = str;
if (n>99)
{
*pStr = n/100;
n %= 100;
*pStr += '0';
pStr ++ ;
*pStr = n/10;
n %= 10;
*pStr += '0';
pStr ++ ;
}
if (n>9)
{
*pStr = n/10;
n %= 10;
*pStr += '0';
pStr ++ ;
}
if (n10)
{
*pStr = n + '0';
pStr ++;
}
*pStr = 0;
return str;
}
用了5Byte內(nèi)存,不知是否精簡(jiǎn),先用著再說(shuō)!String 轉(zhuǎn) unsigned char的要反過(guò)來(lái)先減'0'再乘,不過(guò)要檢查是否小于等于255。等寫好了再放上來(lái).
評(píng)論