C 教材:整數計算

fahr-40.c 中,我們以

cels = 5*(fahr-32)/9;
計算華氏與攝氏溫度的轉換。 要注意的是,= 號右邊的所有變數 (fahr) 和常數,都是整數。 如果 C 看到一個四則運算符號的兩邊都是整數,它會採用整數算法。 這對 + - * 都無所謂,但是遇到 / 就有問題了。 整數的除法,只得到整數的商,不管餘數。也就是所謂的「無條件捨去」。 因此,
3/9   8/9   9/9   20/9   100/9
被 C 計算的結果分別是
0   0   1   2   11

因此,我們看到,用這種計算來做華氏與攝氏溫度的轉換, 實非上策。我們應該要使用帶著小數的數字來計算,得到的結果比較準確。 我們在下一節就這麼做。

習題

  1. 請問以下語句,被 C 計算的結果分別是多少?
    12+6/9   (12+6)/9   12-6/9   (12-6)/9

[BCC16-C]
單維彰 (2000/03/23) ---
[Prev] [Next] [Up]