10進数から2進数への変換(小数点を含む数)

logic

具体的な例として、10進数の\( 13.625_{10} \)を2進数に変換します。整数部と小数部を別々に変換し、2つの結果を結合します。

基数を明確にするために、数値の最後に下付き文字で基数を付加します。例えば、10進数の1という数値は\( 1_{10} \)と表記します。2進数の1という数値は\( 1_{2} \)と表記します。16進数の1という数値は\( 1_{16} \)と表記します。

整数部

図1のように、元の10進数の整数部を変換先の基数2で割り、その商が0になるまで2で商を繰り返し割ります。割り算の余りを順に並べると、10進数の\( 13_{10} \)は、2進数の\( 1101_{2} \)に対応することがわかります。

10進数から2進数への変換(整数部)
図1: 10進数から2進数への変換(整数部)

小数部

図2のように、元の10進数の小数部に変換先の基数2を掛け、その結果の小数部分が0になるまで2の掛け算を繰り返します。掛け算結果の整数部を順に並べると、10進数の\( .625_{10} \)は、2進数の\( .101_{2} \)に対応することがわかります。

10進数から2進数への変換(小数部)
図2: 10進数から2進数への変換(小数部)

整数部と小数部の変換結果の結合

整数部と小数部の変換結果から、10進数の\( 13.625_{10} \)は、2進数の\( 1011.101_{2} \)に対応することがわかります。

検算

2進数\( 1011.101_{2} \)を10進数に変換して、結果が\( 13.625_{10} \)になるか確認します。

\begin{equation}
\begin{split}
1101.101_{2}
&= 1_{10} \times 2^3_{10} + 1_{10} \times 2^2_{10} + 0_{10} \times 2^1_{10} + 1_{10} \times 2^0_{10} + \\
&1_{10} \times 2^{-1}_{10} + 0_{10} \times 2^{-2}_{10} + 1_{10} \times 2^{-3}_{10}\\
&= 1_{10} \times 8_{10} + 1_{10} \times 4_{10} + 0_{10} \times 2_{10} + 1_{10} \times 1_{10} + \\
&1_{10} \times \frac{1_{10}}{2_{10}} + 0_{10} \times \frac{1_{10}}{4_{10}} + 1_{10} \times \frac{1_{10}}{8_{10}}\\
&= 8_{10} + 4_{10} + 0_{10} + 1_{10} + \\
&\frac{1_{10}}{2_{10}} + 0_{10} + \frac{1_{10}}{8_{10}}\\
& = 13.625_{10}
\end{split}
\end{equation}

タイトルとURLをコピーしました