Keil C 字符串显示数字问题

望者无敌 2016-12-08 02:29:32
比如,我收到两个uchar,分别是0x0c和0x0d。
我想把这两个uchar和小数点一起组成字符串,显示0x0c和0x0d的十进制。组成"12.13"这种形式。
现在是把它们放在一个uchar数组中,但是最后字符串显示的却是0x0c 0x0d的ASCII码。
请大神指教!!!
...全文
725 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
望者无敌 2016-12-09
  • 打赏
  • 举报
回复
引用 14 楼 raining 的回复:
或者,参考这个帖子 http://blog.csdn.net/zhanglianpin/article/details/44779009 把%d改为%bd试试 sprintf(sensorValueData,"%bd.%bd",temp[0], temp[1]);
谢谢,我先试一下!
raining 2016-12-09
  • 打赏
  • 举报
回复
或者,参考这个帖子 http://blog.csdn.net/zhanglianpin/article/details/44779009 把%d改为%bd试试 sprintf(sensorValueData,"%bd.%bd",temp[0], temp[1]);
raining 2016-12-09
  • 打赏
  • 举报
回复
引用 12 楼 wangzhewudi10220831 的回复:
[quote=引用 11 楼 raining 的回复:] [quote=引用 10 楼 wangzhewudi10220831 的回复:] uchar sensorValueData[10]; //这是定义的一个全局变量数组 void transferData(uchar data1,uchar data2,uchar str) { uchar temp[]={0x0c,0x0d};//先用0x0c,0x0d代替data1,data2测试一下 sprintf(sensorValueData,"%d.%d",temp[0],temp[1]); } 经过这个函数处理之后,sensorValueData的值变成,
输出的小数点前面的 3085,正好就是 0x0c0d。 可以考虑2楼的做法。 [/quote] 我是想最后得到“12.13”这样的字符串,因为这样才能在显示屏上正常显示出来!但是现在老是不行啊[/quote] 考虑2楼的做法,试试这样。 sprintf(sensorValueData,"%d.%d",temp[0] & 0xff, temp[1] & 0xff);
望者无敌 2016-12-09
  • 打赏
  • 举报
回复
引用 11 楼 raining 的回复:
[quote=引用 10 楼 wangzhewudi10220831 的回复:] uchar sensorValueData[10]; //这是定义的一个全局变量数组 void transferData(uchar data1,uchar data2,uchar str) { uchar temp[]={0x0c,0x0d};//先用0x0c,0x0d代替data1,data2测试一下 sprintf(sensorValueData,"%d.%d",temp[0],temp[1]); } 经过这个函数处理之后,sensorValueData的值变成,
输出的小数点前面的 3085,正好就是 0x0c0d。 可以考虑2楼的做法。 [/quote] 我是想最后得到“12.13”这样的字符串,因为这样才能在显示屏上正常显示出来!但是现在老是不行啊
raining 2016-12-09
  • 打赏
  • 举报
回复
引用 10 楼 wangzhewudi10220831 的回复:
uchar sensorValueData[10]; //这是定义的一个全局变量数组 void transferData(uchar data1,uchar data2,uchar str) { uchar temp[]={0x0c,0x0d};//先用0x0c,0x0d代替data1,data2测试一下 sprintf(sensorValueData,"%d.%d",temp[0],temp[1]); } 经过这个函数处理之后,sensorValueData的值变成,
输出的小数点前面的 3085,正好就是 0x0c0d。 可以考虑2楼的做法。
望者无敌 2016-12-09
  • 打赏
  • 举报
回复
uchar sensorValueData[10]; //这是定义的一个全局变量数组
void transferData(uchar data1,uchar data2,uchar str)
{
uchar temp[]={0x0c,0x0d};//先用0x0c,0x0d代替data1,data2测试一下
sprintf(sensorValueData,"%d.%d",temp[0],temp[1]);
}
经过这个函数处理之后,sensorValueData的值变成,

望者无敌 2016-12-09
  • 打赏
  • 举报
回复
引用 14 楼 raining 的回复:
或者,参考这个帖子 http://blog.csdn.net/zhanglianpin/article/details/44779009 把%d改为%bd试试 sprintf(sensorValueData,"%bd.%bd",temp[0], temp[1]);
谢谢,已经搞定啦,就是要用这个%bd才行
paschen 2016-12-08
  • 打赏
  • 举报
回复
引用 8 楼 wangzhewudi10220831 的回复:
[quote=引用 3 楼 paschen 的回复:]

	char str[100];
	unsigned char uch[] = {0x0c, 0x0d};
	sprintf(str, "%u.%u", uch[0], uch[1]);
str中内容为你要的字符串
uchar temp[]={0x0c,0x0d}; sprintf(sensorValueData,"%u.%u",temp[0],temp[1]); sensorValueData是一个空数组,大小为10. 但是最后sensorValueData的值不对呢 [/quote] 你变量什么类型,给出你完整代码
望者无敌 2016-12-08
  • 打赏
  • 举报
回复
引用 3 楼 paschen 的回复:

char str[100];
unsigned char uch[] = {0x0c, 0x0d};
sprintf(str, "%u.%u", uch[0], uch[1]);


str中内容为你要的字符串

uchar temp[]={0x0c,0x0d};
sprintf(sensorValueData,"%u.%u",temp[0],temp[1]);
sensorValueData是一个空数组,大小为10.
但是最后sensorValueData的值不对呢
望者无敌 2016-12-08
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
作为一个C程序员,对 scanf,sscanf,fscanf printf,sprintf,fprintf 这类函数的用法,还是要做到“拳不离手,曲不离口”的。
谢谢,我总结一下!!!
望者无敌 2016-12-08
  • 打赏
  • 举报
回复
引用 3 楼 paschen 的回复:

	char str[100];
	unsigned char uch[] = {0x0c, 0x0d};
	sprintf(str, "%u.%u", uch[0], uch[1]);
str中内容为你要的字符串
谢谢,我先试一下
赵4老师 2016-12-08
  • 打赏
  • 举报
回复
作为一个C程序员,对 scanf,sscanf,fscanf printf,sprintf,fprintf 这类函数的用法,还是要做到“拳不离手,曲不离口”的。
望者无敌 2016-12-08
  • 打赏
  • 举报
回复
引用 2 楼 ipqtjmqj 的回复:
uchar recv[2]; printf("%u.%u", recv[0] & 0xff, recv[1] & 0xff);
我是想输出到字符串中,然后“12.13”这种形式,不知道可不可以呢?
paschen 2016-12-08
  • 打赏
  • 举报
回复

	char str[100];
	unsigned char uch[] = {0x0c, 0x0d};
	sprintf(str, "%u.%u", uch[0], uch[1]);
str中内容为你要的字符串
ipqtjmqj 2016-12-08
  • 打赏
  • 举报
回复
uchar recv[2]; printf("%u.%u", recv[0] & 0xff, recv[1] & 0xff);
望者无敌 2016-12-08
  • 打赏
  • 举报
回复
帮帮忙啦!!!!!

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧