『BRAINS〜コンピュータに賭けた男たち〜』

コンピュータの基礎講座B 二進法


 コンピュータには二進法が使われている。それは、(1)工学的な取り扱いが簡単なことと、(2)経済性が高いという理由による。

  二進法とは2ごとに1桁上がる表記法のことである。私たちは普段、0から9までの十種類の数字をもつ十進法を使用している。しかしもし、十進法をそのまま計算機の回路に持ち込んだとすると、当然ながら、その各数字を識別する十種類の信号を作らなければならない。これが二進法なら必要な信号は0と1しかないので、電気的な表現が非常に容易になる。例えば、コンピュータ内の電子回路では電圧レベルを信号に使って0v(ボルト)を0、+5vを1にあてたり、フロッピー・ディスクなどの磁気媒体では磁化の向きで、左向きなら0、右向きなら1などと決めておけばよい。

 その際、状態は二つだけ用意すればよいので、信号レベルはだいたいあっていればよく、例えば電圧レベルの場合、0〜+2vなら0、+3〜+5vなら1などとしておけば、電圧レベルが多少ずれたとしても問題は起こらない。それは、雑音に強いということを意味する。

 

 経済性については簡単な例で説明しよう。例えば、ランプで数字を表現することを考える。ランプが全部消えている時を0とすれば、十進法で1桁を表現するためには1から9までの9個のランプが必要である。例えば、3桁までの数字、0から999までの1000(103)個を表現しようと思えば27個のランプが必要となる。一方、二進法では1桁を表現するために必要なランプは1個である。点いている時が1で、いない時が0である。これを10個(10桁)並べたとすると、0から1023の1024(210)個の数字が表現できることになる。もし十進法の時と同じ27個のランプを使うとすると、二進法では実に1億を越える数字(227=134217728)まで表現できる。理論的には、二進法か三進法がもっとも効率的な表記法であることが知られている。

 

 そのためツーゼをはじめとするコンピュータ開発の先駆者たちは二進法を採用した。ただ問題だったのは、0と1しか表現できない電気回路でどの程度のことができるのか、であった。

 当時MIT(マサチューセッツ工科大学)の大学院生であったクロード・E・シャノン(米 1916〜)は1937年の修士論文『継電器とスイッチ回路の記号的解析』において、電気回路でブール代数が構築できることを示した。それは、デジタル計算機に理論的な根拠を与えるものであった。チューリングはその同じ頃、チューリング・マシンを用いれば人間の思考を代替できることを示していた。しかし、どうやればチューリング・マシンを実現できるのかまでは言及していなかった。シャノンは電気回路でチューリング・マシン、つまりは現代のコンピュータを構成できることを示したともいえる。

 「人間はすべて死ぬものである→ソクラテスは人間である→ゆえにソクラテスは死ぬ」というような論理過程を厳密に数式化したのがブール代数である。そこで使われる数値は1(真)と0(偽)だけであり、その組み合わせだけで複雑な論理が構築できることが示されている。現在のコンピュータが単なる計算機械以上に複雑な情報処理を行えるのはそのためである。コンピュータの回路が論理回路と呼ばれ、『デジタル計算機のプログラミングは算術の問題ではなく論理の問題である』ともいわれるのは、現在のコンピュータがブール代数を基礎としているからである。

 

 ブール代数を創案したジョージ・ブール(英 1815〜1864)はエイダと同年の、バベッジと同時代に生きたイギリスの数学者である。上流階級であったバベッジやエイダと違い、貧困層に生まれたブールは独力で数学を習得し、1854年に論文『思考の法則』でブール代数を世に送り出した。当時は、論理学は哲学上の問題であるとしてその重要性に気付くものはほとんどいなかった。しかし20世紀に入ると、現代数学の基礎に重要な影響を与えることとなり、ブールの名は数学史上で不朽のものとなる。と同時に、アメリカのシャノンにより実用面でも一気に花開くことになるのである。

 

 ドイツのツーゼによりバベッジの夢が具現化するのはその4年後のことである。

 


[戻る]