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

 我来答
zhaobolove520
2020-10-04 · TA获得超过310个赞
知道小有建树答主
回答量:317
采纳率:95%
帮助的人:22万
展开全部
因为是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'
meshcam
推荐于2018-03-07 · TA获得超过107个赞
知道答主
回答量:96
采纳率:0%
帮助的人:57.3万
展开全部
使用编译器带的库,一般都有sprintf这个函数,sprintf(str, "%d", i); code会增加的有些多
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chujiangke001
推荐于2016-04-06 · TA获得超过1605个赞
知道小有建树答主
回答量:1352
采纳率:0%
帮助的人:698万
展开全部
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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liang890319
2013-01-30 · TA获得超过1235个赞
知道小有建树答主
回答量:1446
采纳率:50%
帮助的人:442万
展开全部
unsigned int a;
unsigned char b;

b=(unsigned char)a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a442d2a7f1
2013-01-30 · TA获得超过3245个赞
知道大有可为答主
回答量:2677
采纳率:50%
帮助的人:1255万
展开全部
你 char 一下不就好了。就是要注意值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式