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'
为什么? 因为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'
展开全部
使用编译器带的库,一般都有sprintf这个函数,sprintf(str, "%d", i); code会增加的有些多
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用 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;
}
/* 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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
unsigned int a;
unsigned char b;
b=(unsigned char)a;
unsigned char b;
b=(unsigned char)a;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你 char 一下不就好了。就是要注意值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询