51单片机中C语言int能转换为字符串类型吗?怎么转换?

如题所述

因为是C51, 所以不能用 VC++里面的C语言代码 eg: itoa, 也不要用打印的 eg: sprintf
为什么? 因为C51的内存太小 ,如果这样用非常占用资源. 下面的朋友回答就显得不够专业了.

所以, 一般我们是这样自己写代码使用实现的: 字符串改为数组的形式
unsigned char dat[5];
dat[4]=Num/10000+'0';

dat[3]=Num%10000/1000+'0';
dat[2]=Num%1000/100+'0';
dat[1]=Num%100/10+'0';
dat[0]=Num%10+'0'
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-07
使用编译器带的库,一般都有sprintf这个函数,sprintf(str, "%d", i); code会增加的有些多本回答被提问者采纳
第2个回答  推荐于2016-04-06
itoa函数可以参考
/* itoa example */
#include <stdio.h>
#include <stdlib.h>

int main ()
{
int i;
char buffer [33];
printf ("Enter a number: ");
scanf ("%d",&i);
itoa (i,buffer,10); //转化为十进制
printf ("decimal: %s\n",buffer);
itoa (i,buffer,16); //转化为十六进制
printf ("hexadecimal: %s\n",buffer);
itoa (i,buffer,2); //转化为二进制
printf ("binary: %s\n",buffer);
return 0;
}本回答被网友采纳
第3个回答  2013-01-30
unsigned int a;
unsigned char b;

b=(unsigned char)a;
第4个回答  2013-01-30
你 char 一下不就好了。就是要注意值
相似回答