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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5684|回復: 0
打印 上一主題 下一主題
收起左側(cè)

編程教訓---四則運算別超范圍(int*int結(jié)果不可超過int最大值)

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71477 發(fā)表于 2015-1-1 20:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
注意:計算式,能不寫成一大行的就分開寫,只要保證了精度就可以了!!寫一大行有時候反而影響精度!
例如: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.如果你想做普通的四則運算。那肯定是浮點數(shù)的運算。整形的除法是取商,不是我們平時的除法,它是舍去了余數(shù),即小數(shù)部分。例如:int a=1;   a=a/10;   結(jié)果會得到0;因為只有商被保留下來。正確的是: float  a=1;   a=a/10;   得到結(jié)果是:0.1
3。四則運算中常量之間做除法是特別注意:要加小數(shù)部分,不管它有沒有小數(shù)部分;例如:float  a;   a=12/36; 這是錯誤的,這是取商運算,不叫“除法”,只能得到0。正確的應(yīng)該是:float  a;   a=12.0/36.0;   加上小數(shù)點就對了,得到結(jié)果 0.3   。a=90*1000.0/20.0;第一步運算有一個變量或常量是浮點型,這樣擴大了最大范圍,防止運算值溢出。C語言能自動想高一級轉(zhuǎn)換類型。平時我們應(yīng)該養(yǎng)成浮點數(shù)加小數(shù)點的習慣。常量也分數(shù)據(jù)類型的。 “12”代表是非浮點型(整型int或字符型char)“12.0”則是浮點型(float)
4. 整形先乘法再除法,每步運算不能超過兩個因子中,最大的那個變量類型的最大范圍。
unsigned int a, b=90;   a=b*1000/3000.0; 第一步乘法后溢出90000-65536=24464計算結(jié)果a=8;因為b*1000這里超過了a的最大范圍65536,取模后得到8。正確寫法:a=b*100/3000*10;這里可以得到a=30。因為受寄存器限制,最大2個字節(jié)65535。
但是浮點數(shù)乘法再除法。就不會超范圍; a=b*1000.0/3000;浮點數(shù)范圍大a結(jié)果是30.
6. 對于不同類型的變量做計算時,要考慮結(jié)果是否超過了最大范圍。這個最大范圍由兩個因子中最大的決定。 例如 unsigned int  a,b=7;   a=b+65535;得到的結(jié)果不會是65542,而是溢出部分6.因為它已經(jīng)超出了a的最大值 65536;  又如 a=b-65535;也不會得到負數(shù),而是8等效一下a=b+(-65535);即:a=b+1=8這里運算.  a=b*65536;也超出計算式最大數(shù)據(jù)類型的范圍。因為是計算完之后才賦值為左邊的數(shù)據(jù)類型
可見:四則運算要注意三點。1。數(shù)據(jù)類型。2.。精度問題 。 3。計算式超過最大數(shù)據(jù)類型范圍的問題,計算完之后才會賦值為左邊的數(shù)據(jù)類型。 特別是變量與常量的四則運算加倍注意是否超范圍。
 
    整數(shù)除法是整數(shù)運算中最慢的,所以應(yīng)該盡可能避免。例如連除,這里除法可以由乘法代替。這個替換的副作用是有可能在算乘積時會溢出,所以只能在一定范圍的除法中使用。
           不好的代碼:
int i, j, k, m;
m = i / j / k;
             推薦的代碼:
int i, j, k, m;
m = i / (j * k)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩视频在线免费观看 | 一区二区三区四区国产精品 | 日韩一区二区福利视频 | 午夜在线小视频 | 亚洲精品福利在线 | 一区二区三区高清 | 精品一区二区免费视频 | 91精品国产综合久久精品 | 久久99精品久久久久久 | 久久久久久久久久影视 | 亚洲成人av一区二区 | 久草久草久草 | 天堂成人国产精品一区 | 久久综合一区 | 久久精品国产亚洲夜色av网站 | 欧美久久久久久久 | 亚洲精品成人 | 可以在线观看av的网站 | 亚洲丝袜天堂 | 日韩视频a | 黑人久久久| 亚洲精品一区久久久久久 | 午夜性色a√在线视频观看9 | 欧美性久久 | 日韩精品一区二区三区中文在线 | 欧美一区二区三区在线观看 | 在线播放一区二区三区 | 亚洲韩国精品 | 亚洲成人国产综合 | 婷婷激情综合 | 国产成人精品免费 | 日韩一区在线播放 | 亚洲超碰在线观看 | 精品国产乱码久久久久久88av | 在线播放精品视频 | 狠狠狠| 国产精品日韩一区 | 欧美精品一区二区三区蜜桃视频 | 二区久久| 欧洲av一区| 欧美久久一区二区三区 |