单片机用printf发送串口数据

TI=1;printf("item%d.bco=612800",row);sendend();TI=1;printf("item%d.bco=10400",exrow);... TI=1;
printf("item%d.bco=612800",row);sendend();
TI=1;
printf("item%d.bco=10400",exrow);sendend();

我在助手只能接收到61280 1040。如果程序中改成61280 1040,就只能接收到6128 104.为什么?
展开
 我来答
轨迹AIOT
2018-08-30 · TA获得超过890个赞
知道小有建树答主
回答量:231
采纳率:81%
帮助的人:29.5万
展开全部

printf中%d输出的最大即是2的32次方个长度;

2^32=42949 6729 6

你的61280 10400 已经超出了这个范围。

所以只能显示61280 1040

你的数要在42949 6729 6之内,如果需要把61280 10400 全部显示出来,很简单

把%d改为%ld

因为%ld输出的最大即是2的64次方个长度,即2^64=18446744073709551616

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式