单片机中用sprintf打印%X,一个unsigned char型打印出两个字节,怎么回事,代码如下 50

floatf1=2018.19;unsignedcharbuf[4]={0};memcpy(buf,(BYTE*)&f1,4);sprintf(tem,"M1=%X,M2... float f1 = 2018.19;
unsigned char buf[4]={0};
memcpy(buf,(BYTE*)&f1,4);
sprintf(tem,"M1=%X,M2=%X,M3=%X,M4=%X",
buf[0],buf[1],buf[2],buf[3]);
SendString(tem,30); //串口打印函数

运行后打印结果如下 :
M1=44FC,M2=4614,M3=0,M4=0

ps:在vc中试验同样的程序打印的是单独的四个字节,正常
M1=14,M2=46,M3=FC,M4=44

这咋回事,大神门
展开
 我来答
tony_sgt
2018-01-10 · TA获得超过8423个赞
知道大有可为答主
回答量:5330
采纳率:66%
帮助的人:1205万
展开全部
%x是16进制的意思,当然就是两个byte输出,unsigned char才一个byte
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32是一种32位的微控制器,由意法半导体(STMicroelectronics)公司设计和生产。STM32是一种非常常见的嵌入式系统芯片,广泛应用于物联网、汽车、工业控制、医疗设备等领域。STM32具有以下特点:1. 体积小巧:STM... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式