二進法とは単なる「日常生活とは異なる数値の表記法」
学校で二進法を習った時、おそらく多くの人はそれが何を意味しているかわからなかったと思います。自分もそうでした。しかし結論はタイトルの通りです。私達が普段使っている十進法は0から9までの数字で数値を表現します。一方で二進法は0と1だけで数値を表現します。違いはこれだけです。
十進法:0 1 2 3 4 5 6 7 8 9
二進法:0 1
といっても「どうやって0と1だけで数値を表現するの?」と思うでしょうから、まず私達が普段(十進法で)どうやって数値を表現しているかを詳しく見ていきましょう。
十進法とは
まず0~9までの整数はどうやって書けばいいでしょう? 質問がカンタン過ぎてかえって混乱するかもしれませんが普通に素直に考えれば大丈夫です。そう、3なら3、8なら8と対応する数字を書けばいいだけです。
でも数字って十個しかありませんよね? そして9まで書いた時点で数字は使い切ってしまいます。では「十」を書くには何か新しい数字が必要なんでしょうか?
そんな事ありませんね。桁数を上げて「10」と書けば、わざわざ新しい数字を発明しなくても「十」を表現できます。当たり前じゃないか、と思うかもしれませんが古代の人はこのことを思いつかなかったので漢字やローマ数字(3はⅢ、5はV、10はX)を見れば分かる通り、昔の人は大きな数を書くたびに新しい記号を発明していました。
さて、10以降の数も皆さんご存知の通り11, 12, 13…と書いていけます。ではそうやって99まで書いたら「百」はどうやったら書けるでしょう?
そう、また桁数を上げて「100」と書けばいいですね。同様に101, 102, 103…とその後の数も書いていくことができます。では999まで書いたら「千」はどうやって書くか? そう、また桁数を上げて「1000」と書けばいいですね。
ここまで読んで十進法ではなぜたった10個の数字でどんな大きな数でも書くことができるのかなんとなくわかったと思います。
ではさらに詳しく解説していきます。十進法では上記の例を見れば分かる通り1が10個集まったら桁数を上げて「10」、10が10個集まったらまた桁数を上げて「100」、100が10個集まったらまた桁数を上げて「1000」、というように数を10個ごとにまとめて桁数を上げていくことで数値を表現しています。これが「十」進法と呼ばれる理由です。
例えば「8783」という数を考えてみましょう。この数では「8」という数字が2つ使われてますがそれぞれ違う値を意味していることはわかりますね?
まず一番左の「8」は何を意味してるでしょう? そう、8000ですね。正確に言うと「1000が8個」ということを意味してます。これを少し難しく書くと「10^3(10の3乗)が8個」になります。
では左から3番めの8は何を意味しているか? そう、「10が8個」ということを意味してます。これも少し難しく書くと「10^1(10の1乗)が8個」という意味です。同様に左から2番めの7は「10^2(10の2乗)が7個」ということを意味し、一番右の3は「10^0(10の0乗)が3個」ということを意味してます(中学では習わないと思いますが、どんな数も0乗すると1になるので10^0=1です)。
このように十進法では一番右の数字から10^0が何個、10^1が何個、10^2が何個……と書いていくことでどんな大きな数でも書き表せます。
では二進法とは
二進法も考え方は同じです。十進法と違うのは数を10個ずつまとめて表現するのではなく2個ずつまとめて表現していることです。
二進法でも0は0、1は1です。でも二進法では「2」以降の数字は使えません。ではどうやったら「二」を表現できるでしょう? 十進法で「十」を書く時に使った方法を思い出してください。数字は十個しかないので桁数を上げて「10」と書きましたね。二進法でも同じです。数字は二個しか使えないので「二」を表現するには桁数を上げて「10」と書けば良いです(これは二進法なので「十」ではなく「二」を意味してることに気をつけてください。「ジュウ」ではなく「イチゼロ」と読むのが良いでしょう)。
後は十進法の時と同じように三は「11」と表記できます(2^1が1個、2^0(=1)が1個という意味です)。では四を書くにはどうすればいいでしょう? 4=2✕2=2^2なので「数を2個ずつまとめる」という二進法の考え方を用いれば、また桁数を上げて「100」(イチゼロゼロ)と書けばいいことがわかります。同様に5は「101」(2^2が1個、2^1が0個、2^0が1個)、6は「110」(2^2が1個、2^1が1個、2^0が0個)、7は「111」(2^2が1個、2^1が1個、2^0が1個)と書いていけます。では八はどう書くかというと、もうわかったかもしれませんが8=2✕2✕2=2^3なので、「数を2個ずつまとめる」という二進法の考え方からして、また桁数を上げて「1000」(イチゼロゼロゼロ)と書けばいいことがわかります。
このように、二進法では一番右の数字から2^0が何個、2^1が何個、2^2が何個……と書いていくことで十進法と同じようにどんな大きな数でも書き表せます。
なぜ二進法を習うのか
最後になぜ二進法が重要なのかを説明します。それはコンピュータで使われてるからです。コンピュータがどうやって数値を扱ってるかというと、電流が流れている状態を「1」、流れていない状態を「0」と認識して計算しています。仮にコンピュータを十進法で動かそうとすると電流が流れている状態を10段階に分けて認識しなければいけません。しかしそうすると、例えば電流の強さで0~9を表そうとすると、何らかの理由で少し電流が強くなったり弱くなったりしただけで「5」を誤って「6」と認識したり「4」と認識したりしてしまって正常に動作しません。二進法なら「電流のオン・オフ」さえ判別できれば大丈夫なので誤動作することはないという訳です。
補足:なぜどんな数も0乗すると1になるのか
まず10の累乗を順に見ていきましょう。
10^1=10
10^2=10✕10
10^3=10✕10✕10
10^4=10✕10✕10✕10
これを見ると指数が1つ大きくなるたびに数の大きさが10倍になってることがわかります。ではここで下から順に見ていきましょう。指数が4→3→2→1と減っていくごとに数の大きさが10分の1になってますね。では指数をさらに減らして0にしたらどうなるか? また数の大きさが10分の1になるので10^1の10分の1、つまり1になります。
これはどんな数でも当てはまります。例えば6なら
6^1=6
6^2=6✕6
6^3=6✕6✕6
6^4=6✕6✕6✕6
この場合も指数が大きくなるたびに数の大きさが6倍になっていきます。逆に指数が小さくなるごとに数の大きさが6分の1になります。そのため6^0は6^1の6分の1、すなわち1になります。