久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機keil-c51語言乘除法和取膜超范圍問題(部分不適用于C)
[打印本頁]
作者:
bibi
時間:
2015-4-19 01:50
標題:
單片機keil-c51語言乘除法和取膜超范圍問題(部分不適用于C)
注意:計算式,能不寫成一大行的就分開寫,只要保證了精度就可以了!!寫一大行有時候反而影響精度!
例如: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=90*1000.0/20.0;第一步運算必須要有一個變量或常量是浮點型,后面的可以不用浮點數。C語言能自動想高一級轉換類型。
平時我們應該養成浮點數加小數點的習慣。常量也分數據類型的。 “12”代表是非浮點型(整型int或字符型char)“12.0”則是浮點型(float)
4.
整形先乘法再除法,第一步乘法部分也不能超過左側最大范圍。
unsigned int a,char b=90; a=b*1000/3000.0; 計算結果a=8;因為b*1000這里超過了a的最大范圍65536,取模后得到8。正確寫法:a=b*100/3000*10;這里可以得到a=30。
但是浮點數乘法再除法。就不會超范圍; a=b*1000.0/3000;a結果是30.
6.
對于不同類型的變量做計算時,要考慮結果是否超過了左面被賦值變量類型的范圍
。
例如 unsigned int a,b=7; a=b+65536;得到的結果不會是65543,因為它已經超出了a的最大值 65536; 又如 a=b-65536;也不會得到負數. a=b*65536;也超出計算式最大數據類型的范圍。因為是計算完之后才賦值為左邊的數據類型
可見:四則運算要注意三點。1。數據類型。2.。精度問題 。 3。計算式超過最大數據類型范圍的問題,計算完之后才會賦值為左邊的數據類型。 特別是變量與常量的四則運算加倍注意是否超范圍。
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产一级18片视频
|
亚洲精品免费在线观看
|
国产午夜精品久久久
|
99色综合
|
中国第一毛片
|
国产一级免费观看
|
51调教丨国产调教视频
|
日韩a级片
|
免费观看a级片
|
九九热精品视频
|
三级黄网站
|
69福利视频
|
中文字幕在线观看网址
|
天天干网站
|
日韩成人一区
|
国产一区在线观看视频
|
久久婷婷色
|
久久久久久久久国产
|
亚洲一级在线
|
成人扒开伸进免费观看
|
国产亚洲区
|
欧美在线视频观看
|
色婷av
|
激情五月综合色婷婷一区二区
|
成人永久免费视频
|
香蕉视频免费看
|
人人综合网
|
国产午夜精品福利
|
日本高清在线观看
|
日韩 欧美 亚洲
|
国产精品亚洲精品
|
涩涩在线
|
日韩一级在线观看
|
国产精品高清在线观看
|
婷婷久久五月
|
中文字幕免费在线观看
|
人人插人人射
|
国产日韩精品一区二区
|
午夜性影院
|
国产精品一品二区三区的使用体验
|
丁香激情五月
|