1. 程式人生 > >十進位制小數與二進位制小數之間的互相轉換

十進位制小數與二進位制小數之間的互相轉換

二進位制小數--------------->>>>十進位制小數

“按權展開求和法”:

例1:將101.111(2)轉換成十進位制數

          1*(2^2)+0*(2^1)+1*(2^0)+1*(2^(-1))+1*(2^(-2))+1*(2^(-3))=5.875

          只要記住個位數是2的0次方,往右一次增加,往左一次減少,寫出關係式之後各式相加就是所求

十進位制小數-------------->>>>二進位制小數

(十進位制數的整數位是二進位制數的整數位,十進位制數的小數位是二進位制數的小數位)

“乘二取整法”(順序排列):

假如我們有小數111.4(10),我們對他進行一下計算:

首先取小數位0.4,對其進行“乘二取整法”

0.4*2=0.8     取結果的的整數位置上的數是0          |  按                                     (取整法就是取整數位上的數字)

0.8*2=1.6                                                     取1      |  順

0.6*2=1.2                                                     取1      |  序

0.2*2=0.4                                                     取0      |  寫

0.4*2=0.8                                                     取0      |  出

0.8*2=1.6                                                     取1      |

0.6*2=1.2                                                     取1      |

0.2*2=0.4                                                     取0      |

來到這了,我們發現出現了迴圈,因此可以推知小數點後的二進位制是

0.01100110……(迴圈0110)

接下來是整數111

我們這裡用“除以2取餘法,逆序排列”

所以整數位是1101111

最終結果是整數位和小數位合併1101111.01100110……(2)

後記:

當我們對小數0.1(10)        0.2(10)       0.3(10)      0.4(10)       0.5(10)        0.6(10)        0.7(10)      0.8(10)        0.9(10)

發現只有0.5(10)不會出現迴圈小數,他轉換成二進位制是0.1(2)

其餘的出現迴圈的小數