横画面推奨!
モバイル機器の場合、数式が見切れる場合があります。

2021年9月20日

10進数の小数を2進数の小数に変換するには

 10進数の数を位ごとに分解すると、
\[1234=1× 10^3+2× 10^2+3× 10^1+4× 10^0\]
のように10の累乗の和で表すことができます。これは2進数においても同じです。

 これは整数の場合であり、小数の場合はどうなっているのかを10進数から見ていきます。
例として、$(0.1234)_{10}$で考えてみます。
まずは10000倍して$1234$にします。この時点で$0.1234$と$1234$の関係は
\[0.1234=1234/10000=1234× 10^{-4}\]
です。また、1234を位ごとに分解した式は一番上のようになるので、
\begin{align*}0.1234&=\left(1× 10^3+2× 10^2+3× 10^1+4× 10^0\right)× 10^{-4}\\ &=1× 10^{-1}+2× 10^{-2}+3× 10^{-3}+4× 10^{-4}\end{align*}
となります。このことから、10進数は、10のべき乗で表現できることがわかります。

 これを段階的に見ていくと
$0.1234$の整数部分は$0$です。すなわち$10^0$の位(一の位)は$0$であることがわかります。

10倍すると$1.234$となり、これの整数部分は$1$です。10倍して$1$になったので$10^{-1}$の位(小数第一位)は$1$であることがわかります。

整数部分を取り除きさらに10倍すると$2.34$となり、これの整数部分は$2$です。$0.1234$から100倍して$2$になったので$10^{-2}$の位(小数第二位)は$2$であることがわかります。

整数部分を取り除きさらに10倍すると$3.4$となり、これの整数部分は$3$です。$0.1234$から1000倍して$3$になったので$10^{-3}$の位(小数第三位)は$3$であることがわかります。

整数部分を取り除きさらに10倍すると$4$となり、これの整数部分は$4$です。$0.1234$から10000倍して$4$になったので$10^{-4}$の位(小数第四位)は$4$であることがわかります。小数部分はなくなったのでこれ以上10倍する必要はありません。

以上のことから、
\[0.1234=1× 10^{-1}+2× 10^{-2}+3× 10^{-3}+4× 10^{-4}\]
となることがわかります。
このように10進数の小数を他の進数に変換するには求めたい進数の数を掛けて整数部分を取り出していけば変換することができます。

 これを利用して2進数の小数を求めることができるでしょうか?
例として、10進数の$(0.375)_{10}$について考えてみます。
これは$8(=2^3)$倍すると$3$になります。すなわち
\[0.375=3/8=3× 2^{-3}\]
となります。

そして10進数の$(3)_{10}$は、2進数で$(11)_2$となるので、
\begin{align*}0.375&=\left(1× 2^1+1× 2^0\right)× 2^{-3}\\ &=1× 2^{-2}+1×2^{-3}\end{align*}
したがって、10進数と同じく小数点を使って小数を表現するならば10進数の$(0.375)_{10}$は2進数では$(0.011)_2$と表すことができます。

 これを段階的に$2$を掛ける方法で求めると
$0.375$の整数部分は$0$なので、$2^0$の位は$0$です。

$0.375$を2倍すると$0.75$となり、これの整数部分は$0$です。すなわち$2^{-1}$の位は$0$です。

$0.75$を2倍すると$1.5$となり、これの整数部分は$1$です。すなわち$2^{-2}$の位は$1$です。

整数部分を取り除き2倍すると$1$となり、これの整数部分は$1$です。すなわち$2^{-3}$の位は$1$です。これで小数部分はすべて整数部分へ移りました。

以上から、$(0.375)_{10}$は$(0.011)_2$に変換されることがわかります。

 10進数の無理数や無限小数のような数は小数点以下が無限に続く数と説明されますが、これはいくら10をかけても整数にならない数とも言えます。

同様に2進数にもそのような数が存在します。
2進数における小数点以下が無限に続く数とは、いくら2をかけても整数にならない数のことで例えば$(0.3)_{10}$があります。

 上記の小数の2進数変換を使って求めてみると
$0.3$の整数部分は$0$なので、$2^0$の位は$0$です。

$0.3$を2倍すると$0.6$となり、これの整数部分は$0$です。すなわち$2^{-1}$の位は$0$です。

$0.6$を2倍すると$1.2$となり、これの整数部分は$1$です。すなわち$2^{-2}$の位は$1$です。

整数部分を取り除き2倍すると$0.4$となり、これの整数部分は$0$です。すなわち$2^{-3}$の位は$0$です。

$0.4$を2倍すると$0.8$となり、これの整数部分は$0$です。すなわち$2^{-4}$の位は$0$です。

$0.8$を2倍すると$1.6$となり、これの整数部分は$1$です。すなわち$2^{-5}$の位は$1$です。

整数部分を取り除き2倍すると$1.2$となり、これの整数部分は$1$です。すなわち$2^{-6}$の位は$1$です。

$2^{-5}$の位を求めた時点で小数部分が$2^{-1}$の位を求めたときの小数部分と同じなので、$2^{-6}$の位以降は$2^{-2}$の位から$2^{-5}$の位までと同じ並びを繰り返すことがわかります。すなわちいくら2を掛けても整数にすることはできません。
したがって、$(0.3)_{10}$は$(0.0\dot{1}00\dot{1})_2$という循環小数に変換されます。

(2022/4)加筆・修正しました。
Share:
◎Amazonのアソシエイトとして、当サイト「数学について考えてみる」は適格販売により収入を得ています。
Powered by Blogger.

Blog Archive

PR