http://www.gamez.com.tw/thread-379810-1-1.html
基本上,和十進位同樣理,在小數點之前(整數)其權重值分別為22,21,20,(亦即4,2,1),而在小數點之後其權重值分別為2-1,2-2,2-3, (亦即1/2,1/4,1/8)。整個來說,一個包含三位整數及三位小數的二進位值其各位數字之權重值如下
22,21,20,2-1,2-2,2-3。
在上面這個網址所附的範例,每乘一次2,就是把整個二進位值往左移位一次。那麼,小數值每乘一次2後,從小數點左邊冒出的,就是剛才位在小數點右邊的那一個二進位值。雖然我們是用十進值來乘,但乘完後的值是相同的,所以,每次乘完後,冒在左邊的不是0就是1。(當然,每次乘時,要把先前的整數部份拿掉,只乘小數部份,才會如此)。你可以在紙上用二進值來試試,一目了然。
為了怕以後網址有變,我把上面網址的內容貼在後面
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循環浮點數