C语言编程中数字转化为字符出现误差

2019-03-24 11:03发布

错误.jpg
我上面这段程序中,把Curr_DO寄存器中的数值转化为字符送到液晶模块显示,现在我Curr_DO监测到值为1930,照例说转化为字符为'1' '9' '.' '3' '0'(我中间人为加了一个小数点),但是程序转化的结果却是'1' 1' '.' '5' '8',这到底是为什么?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
cer1991
1楼-- · 2019-03-24 15:47
< 在ptrl[1]语句打中断,看看运行到这一步的时候,ti是多少。另外ti是什么型?int么?别跟我说是char型啊
曾经in
2楼-- · 2019-03-24 18:59
< :TI_MSP430_内容页_SA7 --> t1是不是char型的?单步跟踪t1看看

ptrl[0]=Curr_DO/1000+'0';
t1=Curr_DO%1000;
ptrl[1]=t1/100+'0';
t1%=100;

ptrl[2]='.';

ptrl[3]=t1/10+'0';
t1%=10;
ptrl[4]=t1+'0';
面纱如雾
3楼-- · 2019-03-24 19:33
 精彩回答 2  元偷偷看……
面纱如雾
4楼-- · 2019-03-24 22:29
曾经in 发表于 2014-8-12 20:22
t1是不是char型的?单步跟踪t1看看

ptrl[0]=Curr_DO/1000+'0';

我还真是char型的,改为uint就正常了,你们真是一眼就能看出来,我都查了一整天了,为什么我之前错误的char型也可以让ptr[]得到差不多的数值啊?
曾经in
5楼-- · 2019-03-25 01:10
本帖最后由 曾经in 于 2014-8-12 21:15 编辑
面纱如雾 发表于 2014-8-12 21:06
我还真是char型的,改为uint就正常了,你们真是一眼就能看出来,我都查了一整天了,为什么我之前错误的ch ...

c语言里不同数据类型自动转换,溢出就会出错
LZ基础还不够扎实
曾经in
6楼-- · 2019-03-25 01:51
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章