单片机中unsigned char转字符串的方法

来源:互联网 发布:java string 编辑:程序博客网 时间:2024/06/02 07:36

在单片机中,常用到数字与字符的方法,在C中都是使用itoa函数,C51也有这个函数,但是,8051的RAM是很有限的,所以尽量避免使用int型,常用的是unsigned char。当需要转换成字符串时用itoa的话,还是有点浪费。还是自力更生,自己写了一个,代码如下:

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 (n<10)
 {
  *pStr = n + '0';
  pStr ++;
 }
 *pStr = 0;
 return str;
}

用了5Byte内存,不知是否精简,先用着再说!String 转 unsigned char的要反过来先减'0'再乘,不过要检查是否小于等于255。等写好了再放上来

原创粉丝点击