ワクワクしてきましたか?、してきませんか?(たかが「1+1=2」にわくわくする奴も居ないかもしれませんが)
前章の繰り返しになりますが、指の立ち折りをスイッチのOn・Off(豆電球の点灯・消灯)で表します。
まず、豆電球で一桁目の1の状態を二つ用意します。これは、指で表現すると、が二つですので、
が二つあるということです。
次に、結果は2になるので、指で表現すると、なので、
と
こうなればいいということになります。
まず簡単な方から説明します。
二桁目(人差し指)は、1+1の時だけ光が点けばいいということになります。0+1や1+0や0+0の時には二桁目は点く必要がありません。
ということは、両方のスイッチがOnの時に光が点ればいいので「積」で表現できます。
次に、一桁目ですが、両方のスイッチが切れている時(これは0+0の事)は、光が消えて、どちらかのスイッチが入っている時(これは1+0か、0+1の事)は光が点いて、両方のスイッチが入っている時(これが1+1の事)には、桁上がりするので光が消えて欲しいのです。
ところが残念ながら「和」では1+1の時にも光が点いてしまうので上手くいきません。
そこで、この一桁目の動きをさせるために、以下のように記号を組み合わせます。
ちょっと複雑なので、一つ一つスイッチを入れたときにどうなるか見ていこうと思います。電気が流れているところの線を黄色くしてみました。
まず、0+0の時、二つともスイッチが切れているので、
ということで、答えの豆電球へは電気が流れず光りません。
次に、0+1、及び1+0の時、片方のスイッチを入れると、
このように、片方からの電気の流れで、豆電球の明かりが付きます。もう一方のスイッチでやっても結果は同じです。
最後に1+1の時、両方のスイッチを入れると、
と成り、豆電球の明かりは点きません。
この様な動きをする仕組みを「排他的論理和」と言います(こんな名前を覚えなくてもいいですが)。仕組みが複雑なのでこれも記号で表すことにします、
こんな風に表します。
これと、先ほどの2桁目の「積」を組み合わせたのが以下の図です。
これで、指1本分の足し算と繰り上がりを判断する仕組み「1+1=2」が出来ました。
コンピュータの足し算は、このように単にスイッチの組み合わせの積み重ねで出来ているのです。
なんだか拍子抜けしましたでしょうか?
それともまだ半信半疑な状態でしょうか?
それとも、
「2+3はどうするんだよ、オイ!」
って人もいるでしょうか。
じゃあ、折角なので、2+3が出来る仕組みを考えます。
まず、先ほどの指1本分の足し算と繰り上がりを判断する仕組みの事を「半加算」と言います。
記号化すると、
こんな風に書いてみます。
なぜ「半加算」なのかと言うと、下の桁からの桁上がりを考慮していないからです。最初の例は1桁しかないので桁上がりは必要ないですが、2桁目3桁目の足し算を行う場合には、下の桁からの桁上がりの判断が必要になってきます。
桁上がりを考慮した仕組みを「全加算」と言います。
「全加算」は「半加算」を組み合わせることによって作る事が出来ます。
こうなります。
この「全加算」も記号化して、
こんな風に書いてみます。
そこで元に戻って「2+3」ですが、指で表すと、2がで、
3がで、
答えが5なのでということで、足す元が指2本、答えが指3本で事が足りる事が分かります。
この場合「全加算」の仕組みを2つ繋げます。図にすると、
となります。
試しに、2+3をセットしてみると、
と見事に5になります。これで3+3以下の足し算の仕組みが出来ました。
想像力豊かな人は4個つなげれば5本の指分の31以下の足し算の仕組みが出来る事が分かるかと思います。
計算については、引き算や掛け算や割り算も突き詰めればこのようなスイッチのOn/Offの組み合わせで計算します。(掛け算や割り算は独特なテクニックがあるんですがここでは説明しません。また、マイナスの数字の表現の仕方もここでは説明しません。興味がある方は調べてみてください。最終章で今後どのようなことを調べていけば良いのかまとめようと考えています)
とりあえず、中の動きを理解したかどうかは別にして、「コンピュータが計算する」とはコンピュータが考え込んだりしているわけではなく、単なるスイッチのOn/Offの結果だと言う事を理解していただければ結構です。
次は、豆電球の状態をどうやって人間が普通に理解出来るような文字として表示するかを説明する予定です。