本帖最后由 新新科技 于 2019-8-29 12:01 編輯
這幾天在設(shè)計(jì)一段程序時(shí),需要計(jì)算相乘積為上萬(wàn)甚至上十萬(wàn)的乘法運(yùn)算,大致是這樣的: unsigned int tt;//使用STC單片機(jī) tt=(shuiliang*(100-temp)*0.01;// 其中,shuiliang值為800至1500,temp值為0至100。 通過(guò)多次的試驗(yàn),明明shuiliang(指定1500)和temp(指定30)的代入數(shù)值不會(huì)出錯(cuò),但tt的計(jì)算結(jié)果總是出錯(cuò)(用Proteus_7.5仿真或?qū)嵨锞绱耍娴暮芗{悶,后來(lái)通過(guò)分析,難道51單片機(jī)真的無(wú)法計(jì)算乘積為上萬(wàn)的乘法?最終確定改變運(yùn)算順序(先除,讓乘積不再太大),具體如下: tt=(shuiliang/100)*(100-temp); 這樣的運(yùn)算順序,計(jì)算結(jié)果才是正確的。 請(qǐng)教各位大師,51單片機(jī)在做乘法計(jì)算的,最大只能完成乘積為多少的乘法運(yùn)算?
|