ホーム >> 整数 >> 二進法と十進法の変換方法

二進法と十進法の交換方法を紹介します.




二進法と十進法

私達がふだん目にしている数字の表記法はそのほどんどが十進法と呼ばれるものです.これは,$0$ から $9$ までの十種類の数を用いてすべての数 を表現する方法です.たとえば,$1234$ という数は, $$1234=1\cdot10^3+2\cdot10^2+3\cdot10^1+4\cdot10^0$$ のことです.このように十進法では,自然数を $10$ のべき乗の和で表記した時の係数を順に並べているのです.このとき,その係数は $0$ から $9$ までの自然数となります.小数も同様で,たとえば,$321.45$ という小数は, $$321.45=3\cdot10^2+2\cdot10^1+1\cdot10^0+4\cdot10^{-1}+5\cdot10^{-2}$$ のことです.このように係数のみを並べて書くことで大きな数も比較的簡単に表すことができます.

一方,二進法とは $0$ と $1$ のたった二種類の数を用いてすべての数を表現する方法です.ある自然数 $m$ が $0$ または $1$ の値をとる自然数 $a_0,a_1,\cdots,a_{n-1},a_{n}$ を用いて $$m=a_n2^n+a_{n-1}2^{n-1}+\cdots+a_12^1+a_02^0$$ と表記されるとき,$m$ を二進法で $a_na_{n-1}\cdots a_1a_0$ と書くという風に約束します.
たとえば,$10110$ は $$10110=1\cdot2^4+0\cdot2^3+1\cdot2^2+1\cdot2^1+0\cdot2^0$$ のことであり,これは十進法で $22$ を意味しています.

紙面に書かれた数が十進法表記なのか二進法表記なのかを明確に分ける必要が有る場合は,$1011_{(2)},1011_{(10)}$ のように数の右下に括弧書きで明記することがあります.文脈から十進法表記なのか,二進法表記なのかが明らかな場合は括弧書きを省略することもあります.

十進法から二進法

十進法で表記された数を二進法で表記してみましょう.$2$ 通りの方法を紹介します.

$2$ で割っていく

まずはスタンダードな方法です.与えられた十進法の数を $2$ で割っていき,余りを記録していきます.
たとえば,$29$ を二進法で表すためには,下の表のように $2$ で割った商を右隣りに,あまりを右下に記録していきます.これを,上段が $0$ か $1$ になるまで続けます.
十進法から二進法
ここで,つぎのように逆から読んだ $1$ と $0$ の並びが元の数を二進法で表した数になります.
十進法から二進法
この場合は $29$ は二進法で $11101$ となります.

$2$ のべき乗和を考える

先の方法は二進法表記を逆順に求めていく方法でしたが,前から順当に求めていくこともできます.ここでも $29$ を例に考えてみます.
まず,与えられた数以下の最大の $2$ のべき乗を考えます.この場合は $2^4=16$ です ($2^5=32$ は $29$ を越してしまうので).次に与えられた数から先ほど求めた $2$ のべき乗をひきます.$29-16=13.$ この引いた数 (この場合は $13$) について,先ほどと同様に,それ以下の最大の $2$ のべき乗を考えます.この場合は $2^3=8$ です.これを繰り返していくといずれ必ず $0$ になります.すると,元の数が $2$ のべき乗の和でどのように表せるのかがわかります.この場合は, $$29=2^4+2^3+2^2+2^0$$ となっています.したがって,$29$ は二進法で $11101$ とわかります.

二進法から十進法

二進法で表記された数を十進法で表記してみましょう.こちらは非常に簡単です.冒頭で述べた二進法表記の定義を思い出してください.たとえば二進法で $$1011001_{(2)}$$ という数がある場合,この数は $$1\cdot2^6+0\cdot2^5+1\cdot2^4+1\cdot2^3+0\cdot2^2+0\cdot2^1+1\cdot2^0$$ を表しているのでした.したがって, $$(左辺)=2^6+2^4+2^3+1=89$$ なので,十進法で $89_{(10)}$ です.