在线等 急急急急急急急 这几天我一直困扰一个问题 编译器keil 定义一个char t=0x81,printf(“t= %f”,t/1000);结果是多少?我算的结果是正的0.129,但是t有符号的,理论上结果应该是负数啊? 我特意用VC试了试 VC输出的结果就是-0.127 单片机用补码表示负数 我求完补码,t补=0xff;在打印输出printf(“t= %f”,t/1000)结果是0.255,怎么都和理论的不一致呢? 我一直都没理解 求各位大神帮忙解答这个疑惑 感激不尽
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
呵呵
char为有符号8位数,能表示-128~127,0x81即129,超过127,即用补码表示,反推得它的原码为-127。
vc里面-127/1000=-0.127,“/”即浮点的除法,小数正常;
keil里面当“/”两边都是整数时,结果为整数的商,余数没有了。所以结果应该是0.000000
都是些细节,把基础弄扎实点。
一周热门 更多>