十進制小數分數與二進制之前的轉換
阿新 • • 發佈:2018-06-19
tro 進制 In 負數 tails str 整數 求和 二進制
使用短除法。
例如將十進制分數11/28轉換為二進制數,過程如下:
1、首先將分子分母分別轉換成二進制
(11)10=(1011)2
(28)10=(11100)2
2、使用短除,借位時是借2,商只能是0或1
0.0110010
————————
11100 ) 1011.00
111 00
—————————
100 000
11 100
—————————
100 000
11 100
—————————
100
...
所以:11/28=1011/11100=0.01100100...
十進制小數轉換為二進制小數
十進制數的整數位是二進制數的整數位,十進制數的小數位是二進制數的小數位。兩部分分開轉換。
整數部分 除以2取余,逆序排列。
小數部分 乘 2 取整,順序排列。
例如轉換十進制小數11.4,過程如下。
計算整數部分,11轉換為二進制位1011:
余 數
+ ^
2 | 1 1 1 | 逆
+-+------+ | 序
2 | 5 1 | 寫
+-+----+ | 出
2 | 2 0 |
+-+--+ |
2 | 1 1 |
+--+ +
0
計算小數部分0.4,首先將小數部分一直乘2,積的整數部分順序取出:
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 |
可以看出0110是循環,因此小數部分的二進制是
0.01100110……(循環0110)
最終結果是整數位和小數位合並1101111.01100110……(2)
二進制小數轉換為十進制小數
使用按權展開求和法,小數點左邊是2的正數次方,從0開始;小數點右邊是2的負數次方,從-1開始。
例如將101.111(2)轉換成十進制數
1*(2^2)+0*(2^1)+1*(2^0) # 整數部分 + 1*(2^(-1))+1*(2^(-2))+1*(2^(-3)) # 小數部分
原文鏈接:https://blog.csdn.net/shelldon/article/details/54411472
十進制分數轉換為二進制數
使用短除法。
例如將十進制分數11/28轉換為二進制數,過程如下:
1、首先將分子分母分別轉換成二進制
(11)10=(1011)2
(28)10=(11100)2
2、使用短除,借位時是借2,商只能是0或1
0.0110010
————————
11100 ) 1011.00
111 00
—————————
100 000
11 100
—————————
100 000
11 100
—————————
100
...
所以:11/28=1011/11100=0.01100100...
十進制小數轉換為二進制小數
十進制數的整數位是二進制數的整數位,十進制數的小數位是二進制數的小數位。兩部分分開轉換。
整數部分 除以2取余,逆序排列。
小數部分 乘 2 取整,順序排列。
例如轉換十進制小數11.4,過程如下。
計算整數部分,11轉換為二進制位1011:
余 數
+ ^
2 | 1 1 1 | 逆
+-+------+ | 序
2 | 5 1 | 寫
+-+----+ | 出
2 | 2 0 |
+-+--+ |
2 | 1 1 |
+--+ +
0
計算小數部分0.4,首先將小數部分一直乘2,積的整數部分順序取出:
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 |
可以看出0110是循環,因此小數部分的二進制是
0.01100110……(循環0110)
最終結果是整數位和小數位合並1101111.01100110……(2)
使用按權展開求和法,小數點左邊是2的正數次方,從0開始;小數點右邊是2的負數次方,從-1開始。
例如將101.111(2)轉換成十進制數
1*(2^2)+0*(2^1)+1*(2^0) # 整數部分 + 1*(2^(-1))+1*(2^(-2))+1*(2^(-3)) # 小數部分
=5.875
十進制小數分數與二進制之前的轉換