電気で計算する方法
目次
まとめ
簡素な説明だけにとどめさせてもらうが、「それ以上」のことも書いておこう。
引き算は、足し算の符号を逆にすればいい。
2進数の符号の表現はいくつかあるけど、「2の補数」を使うと回路が簡単になる。
そして、2の補数とは、すべての桁を NOT したうえで、1を足した数のことだ。
NOT 回路は先に示したし、足し算回路も示した。だから、2の補数を求めるのは難しくない。
掛け算は、筆算の原理で行う。
つまり、複数桁×複数桁の計算を、複数の複数桁×1桁の計算に分解し、結果を全部足し合わせるんだ。
ここで、掛け合わせる「1桁」は、2進数なので 0 か 1 しかない。 0 を掛ければ 0 だし、1 を掛ければ元の数だ。
つまり、掛け算の計算なのに、掛け算をする必要はない。足し算だけできればよい。
(冒頭で書いた、実は2進数の方が計算が簡単、というのはこういうことだ)
割り算は結構複雑になってしまうと思う。
というか、僕は回路設計の方は概要程度しかわからないので、こんな高度な回路は説明できない。
実際、昔の 8bit CPU などには、足し算・引き算しかついていないのが普通だった。
比較的最近の CPU でも、掛け算はついていても割り算はついていない、というものもある。
これで話は終わりだ。
コンピューターの基礎は、小3の理科の知識で、だいたい説明できる。
そして、それを組み合わせればすべての計算回路が出来上がってしまう。
もっとも、実際のコンピューターが、説明したような単純な回路で動いているわけではない。
ここで示したのは「原理」のみで、これを多数組み合わせてコンピューターを作ろうとすると、様々な問題に直面することになる。
でも、「どうやって電気で計算しているの?」という疑問に対する答えとしては、これで十分だろう。
基礎が理解できれば、次のステップに進むのも難しくない。
これ以上のことに興味がある人は、文中にちりばめた「用語」をヒントに検索してみるのも面白いかと思う。
2019.4.2 2路スイッチ、と表記していたが、3路スイッチが一般的だったので修正。
(2路スイッチも間違いではない。日本語でも、英語でも two-way / three-way の両方の言い方がある。
しかし、一般には3路ということが多いようだ)