第三題: 一個數值在儲存到電腦記憶體內部之前,會先被轉換成二進位系統。一個數值使用定點法(fixed-point)表示儲存成一個整數,另外,以浮點法(floating-point)表示將一個數值儲存成一個實數。請回答下列問題:
(一)一個整數儲存在記憶體中通常是使用定點法表示,其中,2 補數(2’s complement) 是常在計算機科學中用來儲存一個 n 位元記憶體位置的有號(Signed)整數。請問:
1234.625 為正數,所以 S = 0
1234 (整數部分): 1234 ÷ 2 = 617 餘 0 617 ÷ 2 = 308 餘 1 308 ÷ 2 = 154 餘 0 154 ÷ 2 = 77 餘 0 77 ÷ 2 = 38 餘 1 38 ÷ 2 = 19 餘 0 19 ÷ 2 = 9 餘 1 9 ÷ 2 = 4 餘 1 4 ÷ 2 = 2 餘 0 2 ÷ 2 = 1 餘 0 1 ÷ 2 = 0 餘 1
整數部分: 10011010010 (從下往上讀)
0.625 (小數部分): 0.625 * 2 = 1.25 (取整數部分 1) 0.25 * 2 = 0.5 (取整數部分 0) 0.5 * 2 = 1.0 (取整數部分 1)
小數部分: 101
完整二進制: 10011010010.101
將小數點移動到第一個 1 之後: 1.0011010010101 * 2^10
指數為 10,加上偏移值 127: 10 + 127 = 137
137 的二進制表示: 10001001
取小數點後的部分(不包括第一個1): 0011010010101
補零到 23 位: 00110100101010000000000
S (1 bit) = 0 E (8 bits) = 10001001 F (23 bits) = 00110100101010000000000
完整的 32 位二進制表示: 0 10001001 00110100101010000000000