高分求助:单片机C程序高手进

来源:百度知道 编辑:UC知道 时间:2024/05/30 11:43:55
keil51中编辑程序 有几个语句的作用没看明白 望高手指导:q=temp*2.884796;
p=q/10000;
p=10000*p; /*用毫伏表示的输入电压值转化成整型数送显示*/
k=(signed long)p;
注: float p=0,q=0 ; signed long temp,k; 其中temp已经在前面的程序中得到了一个5位的整数,我现在就不明白那个将q除以10000 再将p乘以10000 我感觉没起什么作用 可去掉这两句又不行 望高手指导!!!

因为q为浮点数, 除以10000 再将p乘以10000,就是取整的方式,就是说去除小数点后的值,最后再用(signed long)强制转换把浮点数变成带符号的长整数。

关键点是: 1. 你要注意Keil51 支持的浮点数的范围
2. 关于Keil51强制转换的要求

^_^,是没有什么作用
k=(signed long)q;
去掉无妨

^_^

p=q/10000;
p=10000*p

应该是求精度~~ 例如 p=1225/100 在p*=100
者p就等于1000

我来看看,希望你早日解决!