ふとコンピュータってなぜ「0と1」だけなの? と思った方向けの記事

最終更新日

computer

コンピュータのことを勉強し始めると、「コンピュータは0と1だけを使っている」と必ず教わります。そして「2進数」と「10進数」が紹介され、「コンピュータは2進数を使っている」という説明を受けるケースが多いのではないでしょうか。

コンピュータはなぜ敢えて「2進数」を使っているのか。本日は、そんな疑問を持った方向けの記事です。

少々時間軸が長い話をまとめるので、取りこぼしてしまうトピックも多いかもしれませんが、コンピュータの歴史や思想を踏まえながら、「0と1」が使われている背景をなるべくシンプルに解説してみたいと思います。

目次

そもそも、コンピュータって何?

一言で言うと、コンピュータは「計算機」です。

当たり前だと思った方もいらっしゃるかもしれませんが、コンピュータの一種であるパソコンやスマホから、そろばんや電卓などの「計算機」というワードを連想することは、意外と難しいのではないでしょうか。

現代は、様々な機能を持つ「コンピュータ」が私たちの日常生活を支えております。また、それらのコンピュータに搭載されているソフトウェアやアプリ、プログラムを通して、私たちは写真撮影や文章作成など、色々なことが出来るようになりました。そんな生活必需品となったコンピュータですが、全ての機能は「計算」によって成り立っています。少し踏み込んだ話をすると、コンピュータは「四則演算」に加え、「論理演算」も行えます。

ちなみに、コンピュータ(computer)の語源は、「計算する」という意味のラテン語「computare」です。
参照:コンピューター/computer

世界で最初のコンピュータ

世界で最初に、今のコンピュータに近いものを作ったのは、チャールズ・バベッジ(1791〜1871)だと言われております。まずは一旦、概要プロフィールを見てみましょう。

イギリスの数学者。哲学者、計算機科学者でもあり、世界で初めて「プログラム可能」な計算機を考案した。
「コンピュータの父」と言われることもあり、初期の機械式計算機を発明し、さらに複雑な設計に到達した。その完成しなかった機械の一部はロンドンに所在するサイエンス・ミュージアムに展示されている。
引用元:チャールズ・バベッジ

少し補足をすると、当時は色々な計算結果が集められた「数値表」が、天文学や航海の際に利用されていました。しかし、人間が計算しているため、どうしても表に間違った計算結果が記載されていることがありました。その結果、航海中の難破や沈没などの事故が発生してしまうのでした。

数値表が正確でないことを問題視していたバベッジは、ある日こんなことを思いました。

「機械が計算した結果を使えばいいのではないか?」
※バベッジが21歳のときです。

そしてバベッジは「機械式計算機」の開発に乗り出します。残念ながら、バベッジは存命中に計算機を完成させることはできませんでした。しかし、彼が考案した「解析機関」という計算機は、プログラムが実行できる等、現代のコンピュータに近い構想で設計されておりました。そのため、バベッジを「コンピュータの父」と考える方が多いのです。

ちなみに、バベッジ以前にも「機械式計算機」を作ろうとした人々はいました。

一例を上げると、
・レオナルド・ダ・ヴィンチ(イタリア、1452〜1519)
・ブレーズ・パスカル(フランス、1623〜1662)
・ゴットフリート・ライプニッツ(ドイツ、1646〜1716)

ライプニッツは微分積分法の発明者として知られていますが、実は「2進法」の研究もおこなっておりました。ライプニッツに関してはまた後ほど、ご紹介します。

ここではひとまず、以下のポイントを押さえておきましょう。
・「コンピュータ」とは計算機。
・その原型は19世紀にイギリスのチャールズ・バベッジによって考案された。

コンピュータの哲学的な父? ライプニッツの思想

これは個人的な意見になってしまうのですが、コンピュータの設計の父が「チャールズ・バベッジ」であれば、哲学的な父は「ゴットフリート・ライプニッツ」だと思っています。

それには2つの理由があります。

二進法を「0と1」で表現した

1つ目の理由は、ライプニッツが「0と1」で多くの物事を表現できることを発見したからです。彼は2進法の熱心な研究家でしたが、「世界は0と1で表現できる」と考えていたようです。「神秘主義」に強く惹かれていたことも背景としてあるようですが、現代では多くの物事がデジタル化されていることを考えると、あながち間違っていないのではないでしょうか。

思考する機械を構想していた

2つ目の理由は、ライプニッツが「論理的な思考」を機械化しようとしていたからです。微分積分法を始め、数学史に多大な貢献をしているライプニッツですが、「記号論理学の父」とも呼ばれています。記号論理学はあまり聞き馴染みのない言葉かもしれませんが、シンプルに言うと、物事を「記号」で表し、数学的な「計算」で処理することを目指す学問です。ライプニッツは人間の思考をシンボルに置き換え、計算によって取り扱えると考えていたようです。
いかがでしょうか。「2進法」を用いてあらゆる事象をデジタル化し、数学的な「計算」でそれらを処理する。少し大袈裟かもしれませんが、これはまさに現代の「コンピュータ」がやろうとしていることではないでしょうか。

ここまでの内容を大雑把に整理してみましょう。

コンピュータが登場する遥か昔に、ライプニッツは以下のようなことを考えておりました。
・2進法で世界を表現できる。
・思考や論理も、機械化できる。

2進法で全ての計算が可能!クロード・シャノンの偉業

1937年に、アメリカの数学者であるクロード・シャノン(1916〜2001)が「リレーとスイッチ回路の記号的解析」という論文で、情報を「0か1」で表現することで様々な「論理演算」を行うことが可能であることを証明しました。

参照:コンピューターの2進法の生みの親、死去

なぜこれが、画期的だったのでしょうか。
急に20世紀の話になってしまったので、過去を少し振り返りながら、考えてみましょう。

バベッジを始め、多くの人々が「機械式計算機」の開発に積極的だったにも関わらず、実用的な「コンピュータ」は20世紀中頃まで完成しませんでした。その理由の一つは、ハードウェアが十分に揃っていなかったからです。例えば、バベッジの「解析機関」は、理想を達成するための素材や加工技術が足りていなかったことも、大きな障害だったようです。

しかし、20世紀に入ってから人類は「電子デバイス」が使えるようになりました。そして、シャノンの研究結果は、電子スイッチのON・OFFを切り替えることで、「論理演算」が可能であることを示しました。それまではシンプルな「計算」しかできないと思われていた電子デバイスが、実は「あらゆる演算」を行えることが判明したのです。

「コンピュータ」を作るためのピースは、このシャノンの研究成果が出た時点で全て揃いました。記号論理学などの「思考」を数学的に処理する論理体系が発達しており、その実現を支える素材や技術があり、それらの素材を使って「論理演算」を行うことができる。その3つの要素が組み合わさった結果、人類は「コンピュータ」を作ることができるようになったのです。

そしてこの後、怒涛の勢いで色んなコンピュータが開発されていきます。

まとめ

本日は「なぜコンピュータでは0と1が使われているか」についてお送りしました。

コンピュータのルーツは、計算を自動化するための「機械式計算機」でした。やがて人々は、機械で論理演算を行いたいと考えるようになりました。そして1900年代中頃に、「0と1」のみを使う二進法で、電子回路上で論理演算を行えることが証明されました。その結果、今に至るまで様々なコンピュータが作られるようになったのです。

以上が、コンピュータと「0と1」の関係を巡るストーリーです。もちろん、コンピュータの歴史的には触れていない部分が多くありますが、今回は大まかな流れや思想的背景を中心に取り上げてみました。

シェアする