3. 下列何者無法用2進位精確的表示出來?
(A) 2.75
(B)3.6
(C) 4.625
(D) 5.5
答案:登入後查看
統計: A(7), B(218), C(22), D(9), E(0) #406377
統計: A(7), B(218), C(22), D(9), E(0) #406377
詳解 (共 1 筆)
#1018099
0.125 的二進位制數為 0.001
計算方法是
0.125 x 2 = 0.250
0.250 x 2 = 0.500
0.500 x 2 = 1.000
取 0.250 0.500 1.000 小數點左邊的數字依序放入 0. 右邊:
即 0.001
計算方法是
0.125 x 2 = 0.250
0.250 x 2 = 0.500
0.500 x 2 = 1.000
取 0.250 0.500 1.000 小數點左邊的數字依序放入 0. 右邊:
即 0.001
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
小數0.875的算法如下:
參考資料http://blog.xuite.net/reshenchen/computer/30598491-10%E9%80%B2%E4%BD%8D+%E8%BD%89+2%E9%80%B2%E4%BD%8D+%E5%B0%8F%E6%95%B8%E7%AE%97%E6%B3%95%E3%80%82斷行
0.875
× 2
 ̄ ̄ ̄ ̄
1.750 → 取小數前的 1 →①
0.750 ← 前一計算的乘積只取小數部份
× 2
 ̄ ̄ ̄ ̄
1.500 → 取小數前的 1 → ②
0.500 ← 前一計算的乘積只取小數部份
× 2
 ̄ ̄ ̄ ̄
1.000 → 取小數前的 1 → ③
依①②③的順序,十進位 0.875 為二進位 0.111
其他情況給你參考
0.300
× 2
 ̄ ̄ ̄ ̄
0.600 → 取小數前的 0 → ①
0.600
× 2
 ̄ ̄ ̄ ̄
1.200 → 取小數前的 1 → ②
0.200
× 2
 ̄ ̄ ̄ ̄
0.400 → 取小數前的 0 → ③
0.400
× 2
 ̄ ̄ ̄ ̄
0.800 → 取小數前的 0 → ④
0.800
× 2
 ̄ ̄ ̄ ̄
1.600 → 取小數前的 1 → ⑤ → 從這裡可以發現又回到①的情況
因此 十進位的 0.3 是乘不進二進位的,會變成 0.010011001循環浮點數
參考資料http://www.programmer-club.com.tw/ShowSameTitleN/csce/1748.html
3
0