10進数から2進数への変換(2)

前回の例題3で2で割れば求まるという話をしましたが、それを掘り下げて考えていきます。

例題3
10進数13を2進数に変換せよ。

前回の解き方を下に示します。
$$13\div 2=6\cdots 1\\6\div 2=3\cdots 0\\3\div 2=1\cdots 1\\1\div 2=0\cdots 1$$
余りを下から読んでいって1101

では考えてみて欲しいのですが、なぜ2で割った余りが答えになるのでしょうか。
まずは割り算の式を変形して、ちゃんと13になるのかを検算してみましょう。

割り算を下のように変形します。
$$13\div 2=6\cdots 1\Rightarrow 13=6\times 2+1\cdots(1)\\6\div 2=3\cdots 0\Rightarrow 6=3\times 2+0\cdots(2)\\3\div 2=1\cdots 1\Rightarrow 3=1\times 2+1\cdots(3)\\1\div 2=0\cdots 1\Rightarrow 1=0\times 2+1\cdots(4)$$

(2)を(1)の6に代入すると、
$$13=\left(3\times 2+0\right)\times 2+1$$
(3)を上式の3に代入すると、
$$13=\left(\left(1\times 2+1\right)\times 2+0\right)\times 2+1$$
(4)を上式の1に代入すると、
$$13=\left(\left(\left(0\times 2+1\right)\times 2+1\right)\times 2+0\right)\times 2+1\\13=\left(\left(0\times 2^2+1\times 2^1+1\right)\times 2+0\right)\times 2+1\\13=\left(0\times 2^3+1\times 2^2+1\times 2^1+0\right)\times 2+1\\13=0\times 2^4+1\times 2^3+1\times 2^2+0\times 2^1+1\times2^0\\13=1\times 2^3+1\times 2^2+0\times 2^1+1\times2^0$$
よって、割り算の式から逆算していくとちゃんと13が1101であることが確認できました。

ここで下式について考えます。
$$13=1\times 2^3+1\times 2^2+0\times 2^1+1\times2^0$$
右辺を2で割ると次のようになります。
$$1\times 2^2+1\times 2^1+0\times 2^0+\left(1\div 2\right)$$
注目して欲しいのが、\(1\times 2^3+1\times 2^2+0\times 2^1\)の部分は、全ての項が2を因数に持つので必ず2で割り切れるのに対し、\(1\times2^0\)の部分は2を因数に持たず、余りが0または1として出てきます。
よって、2で1回割ると\(2^0\)の位の数値が余りとして出てくることが分かります。
同様にして2で2回割れば\(2^1\)の位の数値が出てきます。

これを商が0になるまで繰り返し、余りを順番に並べると2進数表記になることが分かるでしょうか。

次回は前回の例題4の小数の話を掘り下げたいと思います。

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