新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 8位單片機(jī)中一個(gè)容易被忽視的溢出問題

8位單片機(jī)中一個(gè)容易被忽視的溢出問題

作者: 時(shí)間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
8位單片機(jī)中一個(gè)容易被忽視的溢出問題

例:

本文引用地址:http://m.butianyuan.cn/article/201611/318554.htm

uint16 wTmp ;
uint8 x ;

x=2;

wTmp = (uint16)(x*150);

各位,以上這個(gè)乘法有沒有問題?wTmp的值是多少?

相信有很多人都會(huì)不加思考的說,沒問題?。Tmp=300 。

好,問題來了!告訴你,其實(shí)結(jié)果是 wTmp=44。
這里不作具體解釋,請(qǐng)讀者自已思考,下次在遇到類似此情況
的時(shí)候千萬有小心!

正確寫法:

x=2;

wTmp = (uint16)(x)*150; //wTmp=300



關(guān)鍵詞: 8位單片機(jī)溢出問

評(píng)論


技術(shù)專區(qū)

關(guān)閉