<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > c語(yǔ)言數據運算超范圍要注意

c語(yǔ)言數據運算超范圍要注意

作者: 時(shí)間:2012-08-31 來(lái)源:網(wǎng)絡(luò ) 收藏

注意:計算式,能不寫(xiě)成一大行的就分開(kāi)寫(xiě),只要保證了精度就可以了??!寫(xiě)一大行有時(shí)候反而影響精度!

例如:unsigned long int X;

double AD;

AD=AD/50.0;

X=AD*5000.0000/1023.00;

最好先局部計算一下,X=AD*100/1023.00;

1.浮點(diǎn)類(lèi)型的不能做“?!边\算。 例如:float a=1234.56; a=a%10; 這是錯誤的。只有整形才能做“?!眎nt a=12345; a=a%10;

2.如果你想做普通的四則運算。那肯定是浮點(diǎn)數的運算。整形的除法不是我們平時(shí)的除法,它是舍去了余數,即小數部分。例如:int a=1; a=a/10; 結果會(huì )得到0;因為只有商被保留下來(lái)。正確的是: float a=1; a=a/10; 得到結果是:0.1

3.四則運算中常量之間做除法是特別注意:要加小數部分,不管它有沒(méi)有小數部分;例如:float a; a=12/36; 這是錯誤的,只能得到0。正確的應該是:float a; a=12.0/36.0; 加上小數點(diǎn)就對了,得到結果 0.3 。不過(guò),賦值運算符右邊只要有一個(gè)變量或常量是浮點(diǎn)型就可以了。即:a=12.0/36; 也得到a=0.3;因為C語(yǔ)言能自動(dòng)想高一級轉換類(lèi)型。但是注意:int 與浮點(diǎn)“常量”做運算并不能把他的范圍擴大,除非計算式里有浮點(diǎn)“變量”例如:int a=5,llong int b; b=a*3.0+65536;是錯誤的,第二次加法還是會(huì )(int )。平時(shí)我們應該養成浮點(diǎn)數加小數點(diǎn)的習慣。同時(shí)注意:常量也分數據類(lèi)型的。 “12”代表是非浮點(diǎn)型(整型int或字符型char)“12.0”則是浮點(diǎn)型(float)

4. 對于不同類(lèi)型的變量做計算時(shí),要考慮計算的每一步的值否超過(guò)了變量類(lèi)型的范圍。注意:是每一步的計算結果,不單是最終結果。否則會(huì )出錯,帶來(lái)不必要的麻煩。 例如 unsigned int a,b=7; a=b+65536;得到的結果不會(huì )是65543,因為它已經(jīng)超出了a的最大值 65536; 又如 a=b-65536;也不會(huì )得到負數. a=b*65536;也超出范圍。a=b/65536.0;也不會(huì )得到小數。對于多次計算更要特別注意,每一部分是否有可能超出范圍,對超出范圍的做相應處理。例如:unsinged int a,b=123; a=b*5000.0/1000000.0; 這樣得到的結果不會(huì )是你想要的,因為第一次乘法已經(jīng)超出了范圍,第二次做除法時(shí)要使用的上次結果已經(jīng)是個(gè)錯誤的值了。 可見(jiàn):四則運算要注意三點(diǎn)。1。數據類(lèi)型。2.。精度問(wèn)題 。 3。計算問(wèn)題。 特別是變量與常量的四則運算加倍注意是否。

萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼


c語(yǔ)言相關(guān)文章:c語(yǔ)言教程




關(guān)鍵詞: c語(yǔ)言 數據運算 超范圍

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>