2進数と位取り記数法

【はじめに】

 コンピュータは「数字で表された情報を扱う機械」と言われているほど数学と密接に関わりを持っています。数学の発展とともにコンピュータが発展してきた言ってもいいくらいコンピュータとの関わりは深く、数学なしには語れません。そのコンピュータの内部では我々がよく目にする10進数ではなく、実は2進数が使われています。どうして2進数なのでしょうか?そもそも2進数とはどんなものなのでしょうか。今回は数学の歴史とともに見ていきましょう。

 

【そもそも2進数とは】

 2進数とは「0」と「1」を使い、数を表現する方法です。1,10,11,100...と数えていくのですがこれを見ただけでは最初はなんのことやらなかなかわかりづらいものです。これを説明するに当たって必要な考え方があります。それは「位取り記数法」です。この位取り記数法を数字の発展の歴史とともに見ていきましょう。

 

【数字の歴史】

 数字の歴史を1から見ていくとそれこそ1冊の本ができてしまうほど深いので、今回は必要な範囲としてエジプト数字から見ていきます。(これはこれで面白いのですが...)エジプト数字は現在使われているアラビア数字と違い以下のように表していました。(ちなみに最後の100万は太陽神です)

f:id:lion0024xyz:20181111155814j:plain

 

 

日本人にとっては漢数字が近いイメージですね。ちなみに数字を表すならこんな感じです。

f:id:lion0024xyz:20181111160520p:plain

見るからに不便そうですね。実際その通りでこれらは現在では計算する際には使われることはありません。なぜでしょうか?大きな欠点があったため計算には向いていなかったのです。(ギリシアでは数字の表記方法がわかりづらかったため代数学が発展しなかったとまで言われるほどです。)

 

ではどんな欠点があったのでしょうか?それは「無限に続く数を表せられないこと」と「数を比べるのがわかりづらいこと」です。

一つずつ見ていきましょう。エジプト数字で最大の数は太陽神という単位(100万)です。ですが、数は残念ながら無限に続きます。なのにエジプト数字ではこれ以上の数を表すことは困難です。

 

例を出しましょう。年末ジャンボの賞金7億円が太陽神×700個分、世界の人口を表すのに太陽神×7000個と表さなくてはならなくなってしまいます。こんなに太陽神がいては有り難みもなく、不便でしかありません。

 

ではもう一つの欠点はどうでしょうか。これは見てもらった方がわかりやすいです。例えば「九百九十九」と「千」どちらが大きいですか、と聞かれたとき見た目ではわかりづらく感じませんか?ですが「999」と「1000」の大きさを比べるとき桁数を比べれば答えが簡単に出ます。漢数字やエジプト文字の表記では筆算をするのにも不便です。やっかいですね。

 

実はこのような欠点を解決してくれたのが「位取り記数法」を使っているアラビア数字なのです。

 

【アラビア数字の記数法】

 そもそもアラビア数字とは10の累乗を単位として桁上がりする数を表す方法です。具体的にはどんなものなのでしょうか?

 

例えば2512を表してみましょう。あまり意識したことはないと思いますがこれらの数は1000が2個、100が5個、10が1個、1が2個の塊です。これらを足し合わせたものか2512を表します。

 

数式で表すなら

1000×2+100×5+10×1+1×2=2512

です。さらにちょっと表記を変えてみましょう。(良い素材がなかったため手書きをお許しください)

 

【2進数】

人は指が10本なので10進法を使っていると言われます。では指が2本しかなかったらどうでしょうか?どう数えるのでしょうか?

 

これも位取り記数法で表せます。10進数なら0〜9を数えていき足りなければ2桁目にいきます。使う数字も0.1.2.3.4.5.6.7.8.9しかありません。

 

では2進数のように「0」と「1」しかなければどうでしょうか?これも基本的には同じです。0〜1を数えていき足りなければ2桁目にいきます。それが10です。(数字の十ではありません)

 

これは10進数ではなにを表しているかわかりますか?1の次なので2ですね。ならもっと数を多くしましょう。1011ならどうでしょうか?

 

まずは並べてみましょう。1.10.11.100.101.111.1000.1001.1010.1011....出てきましたね。1011は十ですね。では10001ならどうでしょうか?さすがに一個ずつ数えるのは難しそうです。では位取り記数法を使っていきましょう。

 

10進数で示した通り、桁が上がるたびに10の累乗が増えていきました。それと同じことが2進数でも起こります。桁が上がるたびに、2の累乗が増えていくのです。どうゆうことでしょうか。10001で見ていきましょう。(またまた手書きです)

 

【まとめ】

どうですか?10進数も2進数も基本は同じです。2を元にするか10を元にするかそれだけのことです。簡単ですね。

 

【応用】

8進数と16進数で20まで数えてみてください。ちなみに答えはここでは載せません。調べながらでもいいのでやってみてください。