The C programming language 2/e (cont.)

念了兩天,進度還是慢,果然太久沒念paper,念英文的速度明顯的慢了...
但是這兩天還是從前面的章節裡得到了些東西,也想起了不少...

首先是今天...念到華氏溫度 跟攝氏溫度的轉換的範例的時候,
C=5*(F-32)/9
為什麼不能寫成
C=(5/9)*(F-32)
因為C跟F都是整數,(5/9)也必須是整數的情況下,C計算出的5/9被truncate掉而等於0..
記得曾經因為這個而出現解超久的BUG!

然後是,#define name replacement text
這個用法當時並不清楚,而念完之後清晰不少,取而代之的不一定是int or double,
而可以是任意char的組合.

最後是念的途中回頭找尋的兩個部份,
第一個是回顧了一下struct的用法,
第二個是double每個byte之間存了什麼!
1 bit => + or -
11 bits => exponent (指數)
52 bits => 尾數
floating
1 bit => + or -
8 bits => exponent (指數)
23 bits => 尾數
確切定義尾數跟指數的用法省略.

接下來幾天得再趕趕進度,得讓C的能力再更接近過去的程度才行...