8位單片機(jī)中一個(gè)容易被忽視的溢出問(wèn)題
例:
本文引用地址:http://www.ex-cimer.com/article/201611/318554.htmuint16 wTmp ;
uint8 x ;
x=2;
wTmp = (uint16)(x*150);
各位,以上這個(gè)乘法有沒(méi)有問(wèn)題?wTmp的值是多少?
相信有很多人都會(huì)不加思考的說(shuō),沒(méi)問(wèn)題啊!wTmp=300 。
好,問(wèn)題來(lái)了!告訴你,其實(shí)結(jié)果是 wTmp=44。
這里不作具體解釋?zhuān)?qǐng)讀者自已思考,下次在遇到類(lèi)似此情況
的時(shí)候千萬(wàn)有小心!
正確寫(xiě)法:
x=2;
wTmp = (uint16)(x)*150; //wTmp=300
評(píng)論