标题:
8位单片机里很会疏忽且常犯的一个错误
[打印本页]
作者:
aabbcc
时间:
2014-11-22 14:27
标题:
8位单片机里很会疏忽且常犯的一个错误
有时候计算溢出,但是程序编译不会报错,昨天在客户现场调试,10位的数字,这10位数字大小且不会超过0XFFFFFFFF,变成四个字节的16进制,然后每个字节再由低到高的输出。一开始试了几个,以为OK了,正好碰到一个,就一位数字出现了异常。
假设一个十位数字:1234787890,9*10,8*100,7*1000都是自动默认转成INT变量的,8*10000超过65535,系统编译后还是默认INT的,这里要加强制转换成LONG INT,是很容易疏忽的一个地方,7*100000,因为100000已经是LONG INT了,所以出来的临时数据默认也是LONG INT,如果计算时前面全部强制转换成LONG INT也就不会出现这个问题了。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1