コンピューターは0と1だけで計算している?

PIXTA
PIXTA
スーちゃん コンピューターは0と1だけで計算しているの?
森羅万象博士 そう。「2進法」という数え方があるんだ。
スーちゃん ふだんの生活で使う0から9までじゃないんだね。
森羅万象博士 機械にとってどこが便利なのか説明しよう

博士より 私たちはふだんの生活で0から9までの10個の数字を使って数を表しているよね。これを「10進法」と呼ぶんだ。コンピューターでは、すべて0と1の2つの数字の組み合わせで表現して計算もする。これが2進法だ。

 10進法では1から数え始めて9まで行くと、次の数字はケタがくり上がって10(ジュウ)になる。これに対して2進法では0、1と2つ数えたら、もう次のケタにくり上がって10(イチ、ゼロ)だ。

 実はコンピューターにとっては10進法ではなく2進法の方が都合がいいんだ。コンピューターでは、電気が流れないオフのときを「0」、流れるオンのときを「1」にしている。

 もし10進法を使うとすれば、0と1の間に8段階の強弱をつける必要がある。でも、電気の流し方で8段階も強弱の差をつけるのはむずかしく、コンピューターが数字をまちがって判別しやすい。2進法の0と1だけだと、電気が流れているか、流れていないかしかないのでまちがいにくい。

 10進法でも、2進法でも、数字を表現する基本的な考え方は同じだ。10進法の場合はケタが1つくり上がるごとに10倍ずつ増える。2進法の場合はケタが1つ増えると2倍になる。2進法で1ケタ目が1のときは10進法では1、2ケタの10は2、3ケタの100は4、4ケタの1000は8、5ケタの10000は16に対応する。

 2進法の01011は10進法でいくつになるか考えてみよう。16の位が0で、8の位が1、4の位が0、2の位と1の位がそれぞれ1だから、16×0+8×1+4×0+2×1+1×1=11となる。

 次のように考えるとわかりやすい。5枚のカードが並んでいて、左から点の数がそれぞれ「16」「8」「4」「2」「1」と書いてあるとする。カードをひっくり返したときが「0」、表のときを「1」とする。例えば2進法の00101はカードだと「裏(うら)」「裏」「表」「裏」「表」と並んでいる。4と1の点が見えるから、10進法になおすと4と1をたし合わせた5になる。同じやり方で01011は8と2と1の点が見えるから、合計した11が10進法の数だとわかるよね。

 私たちの感覚には10進法が一番すなおなようにみえる。でも、身近なところに10進法以外の数え方がある。例えば時間は12時間ごとに午前と午後に変わる。これは12進法だ。分や秒は60でひとまとまりになる60進法だね。世の中にはいろいろな数え方があるんだ。

■時代で変わる数え方

博士からひとこと ふだんの生活で10進法を使うようになったのはなぜだろう。最も有力なのは人間の指が両手で10本あるという説だ。脳の進化とともに数える知能を身につけ、10を区切りとする方法が自然と発展してきたという考えだ。もしタコが数の概念を身につけたときは8進法を使ったかもしれない。
しかし、例外もある。ローマ数字は5ずつで形を変える5進法のなごりがあるし、古代メソポタミア文明では12進法や60進法が使われていたといわれているよ。数の数え方の進化の歴史にはなぞが多いんだ。

(取材協力=中村光一・東京学芸大学教授、藤井達也・広島市立温品小学校教諭)

[日経プラスワン2016年2月20日付]

注目記事
今こそ始める学び特集