數值計算:二進制分數與十進制分數的轉化
整數的十進制而二進制的轉化比較簡單,而且任意一個整數都可以用有限長位數的二進制數來表示,而分數就不一定了。因為整數的最小間隔是1,而分數則可以是無窮小的,所以有時候有限的十進制分數會轉化為無限循環的二進制小數
十進制分數轉化為二進制分數
二進制的分數可以表示為2的負次冪的和,即假設R是一個正的純小數,其可以表示為



為了將轉化為分數,我們將(1)兩邊都乘上2,則有

此時的是
的整數部分,即
,由此可得
,把
的小數部分記為
,則

同樣按照上面的步驟,將(3)兩邊乘上2,則有

則有,同樣,將
的小數部分記為
,按照上述的步驟便可依次得到
下面以0.7為例子,將其轉化為二進制分數
![]() |
![]() |
![]() |
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
注意到,即以后的數字都是重復循環的,所以0.7轉化為二進制小數位無限循環的,即
二進制分數轉化為十進制分數
假如是非無限循環的二進制小數,只需代進(1)式便可以得出其對應的十進制分數,而假如是無限循環的如,我們可以這么做,兩邊乘上32,則有

然后在將原式兩邊乘上1024,則有

上面兩式相減,有

所以可得,其他的循環小數用此方法進行轉化。