久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

c語言數據運算超范圍要注意

作者:佚名   來源:本站原創   點擊數:  更新時間:2010年10月19日   【字體:

注意:計算式,能不寫成一大行的就分開寫,只要保證了精度就可以了!!寫一大行有時候反而影響精度!

例如:unsigned long int X;

  double AD;

AD=AD/50.0;

X=AD*5000.0000/1023.00;

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


1。浮點類型的不能做“模”運算。 例如:float a=1234.56;    a=a%10;  這是錯誤的。只有整形才能做“模”int a=12345;  a=a%10;

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

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

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

關閉窗口

相關文章

主站蜘蛛池模板: av黄色在线| 久久合久久| 久久久久99| 精品久久久网站 | 国产草草视频 | 久久国产精品99久久久久久丝袜 | 国产一区二区在线免费观看 | av一区二区三区四区 | 国产黄色在线观看 | 99国产精品久久久 | 麻豆一区一区三区四区 | 麻豆精品久久 | 国产精品久久久久久久久久久免费看 | 婷婷久久一区 | 国产成人精品一区二区三区在线 | 亚洲高清视频在线 | 国产精品久久久久久久三级 | 日韩视频一区二区 | 国产日韩欧美一区二区在线播放 | 国产成人精品久久二区二区91 | 精品美女在线观看视频在线观看 | 免费在线一区二区三区 | 亚洲视频 欧美视频 | 欧美老少妇一级特黄一片 | 日韩有码一区 | 亚洲高清中文字幕 | 日韩电影免费在线观看中文字幕 | 超碰人人91| 日韩高清国产一区在线 | 亚洲啪啪 | 日本欧美在线视频 | 欧美性一区二区三区 | 国产黄色一级电影 | 久久成人免费 | 日本欧美在线视频 | 国产精品视频在线观看 | 国产亚洲精品久久午夜玫瑰园 | 岛国av在线免费观看 | 国产欧美精品一区二区三区 | 精品一二 | 欧美久久久网站 |