我用wd(无符号字符型)=20.0*P0/51能够正确的算出温度值,但是使用wd=20*P0/51就不能算出正确的温度值,请问这是怎么回事?个人感觉是单片机C语言程序还有点问题没搞清楚?求高手指教... 我用wd(无符号字符型)=20.0*P0/51能够正确的算出温度值,但是使用wd=20*P0/51就不能算出正确的温度值,请问这是怎么回事?
个人感觉是单片机C语言程序还有点问题没搞清楚?求高手指教
我用的单片机是AT89S52
急求!!!!!!
无特殊声明的话20*P0是按照无符号字符型临时计算的,因此很可能发生溢出。
20.0相当于强制转换为float型,自然可以保证“正确”地算出温度(但是计算效率是十分地低下)。