本帖最后由 新新科技 于 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單片機在做乘法計算的,最大只能完成乘積為多少的乘法運算?
|