本帖最后由 新新科技 于 2019-8-29 12:01 编辑
这几天在设计一段程序时,需要计算相乘积为上万甚至上十万的乘法运算,大致是这样的: unsigned int tt;//使用STC单片机 tt=(shuiliang*(100-temp)*0.01;// 其中,shuiliang值为800至1500,temp值为0至100。 通过多次的试验,明明shuiliang(指定1500)和temp(指定30)的代入数值不会出错,但tt的计算结果总是出错(用Proteus_7.5仿真或实物均如此),真的很纳闷,后来通过分析,难道51单片机真的无法计算乘积为上万的乘法?最终确定改变运算顺序(先除,让乘积不再太大),具体如下: tt=(shuiliang/100)*(100-temp); 这样的运算顺序,计算结果才是正确的。 请教各位大师,51单片机在做乘法计算的,最大只能完成乘积为多少的乘法运算?
|