電気で計算する方法

少し前の話だが、次女(小3)が、理科の授業で「電気」を習ってきた。


電池に豆電球をつなげると、光る。


途中にスイッチを入れ、「回路がつながらない」状態にしてやると、消える。

スイッチを押してつなげると光る。


ただこれだけ。

小3で習う電気は、回路を作れば電気が流れて仕事をする(この場合豆電球を光らせる)、という程度だ。


でも、電気の概要としてはこれで十分。

そして、普段からスクラッチでプログラムをしている次女は疑問に思った。


コンピューターは、電気で計算をしている。

いったい、この「電気」をどのように使えば計算ができるのか?




小3で習う程度の知識は限られていて、もっと多くのことを知らないとわからないよ…

と逃げるのは簡単。


でも、実は小3の理科の知識で、十分にコンピューターの概要は理解できる。


図を描きながら、電気回路で2進数の掛け算、足し算ができることを示してみた。


といっても、2進数 1bit だけどね。

1bit の計算が理解できれば、繰り返すことで複数 bit もできるとわかる。


この記事は、せっかくなのでこの時説明したものを書き留めておこう、というものだ。


目次

前提知識

定義

直列スイッチ

並列スイッチ

3路スイッチ

回路の名前

複数桁への拡張

まとめ


前提知識

小学校3年の知識でわかる、と書いたが、少し逸脱する部分もあるので先に説明しておこう。


まず、2進数。小学校では習わない。

これは、0 と 1 の二つだけの数字で、数を表す方法だ。


最初は 0 。次は 1 。ここまでは、我々が普段使っている「十進数」と同じだ。


でも、1 の次は 2 ではない。2進数には、2 という数字はないから。

十進数の場合、数字を全部使ったら… 9 の次は、桁が繰り上がって 10 になる。

2進数も同じで、1 の次は 10 になる。


その次は 11 。そして、また繰り上がって 100 。さらには 101 110 111 1000 …と続いていく。


桁数が多くて計算が大変そう、と次女は言った。

うん、いい反応だ。実は、世界最初のコンピューターの一つ、ENIAC を設計した人も同じことを感じている


しかし、これが勘違いであることはじきにわかる。


もうひとつ、電気回路の技法として、「並列」と「直列」も知っている方がいい。

これは、じつは小4で習う知識。


でも、言葉を知らなくても、「電気が一周できる回路を作れるか」という小3の知識があれば十分。

今回使うのは、スイッチを並列につなぐか、直列につなぐか、というだけだ。

電気の通り道がどうなるかは、考えればすぐわかる。


さらに、応用としては「電磁石」を知っているといい。

1bit の計算をするにはいらないのだけど、複数 bit の計算に発展させるためには必要なんだ。


電磁石は、5年生にならないと習わない。

でも、うちには中2の長男、小5の長女がいるので、次女は電磁石を知っていた。


忘れた人のために書いておけば、電気を流したら磁石になり、電気を止めると磁石ではなくなる。

そういう装置が、電磁石だ。


定義

さて、電気で2進数の計算をしてみよう。


最初の問題は、「電気は数字ではない」ということだ。

数字でないと、計算はできない。


そこで、電気が数字になるように、「定義」を決めてしまうことにする。

定義なのだから、今回はそう決める、というだけだ。別の定義があったってかまわない。


ただ、今から定義するのは、計算回路を作りやすくするための恣意的な定義だ。

だから、今はそういうものだと思って従ってほしい。


まずは、足し算にしても掛け算にしても、数が2つ必要だ。

これを、2つのスイッチで表すことにする。


スイッチは、電気の流れ道を作ったり、流れ道を壊して電気を止めたりする装置だ。

普通は、流れ道を作っている状態を「ON」、そうでない状態を「OFF」と呼ぶ。


そこで、2進数の数としては、ON を 1 、OFF を 0 としよう。


次に、計算結果を表現しないといけない。

これは、豆電球を使おう。


もっと正確に言うと、電流の有無を計算結果として使いたい。

ただ、電流は目に見えないから、豆電球が光るかどうかで電流を確かめることにする。


豆電球は、光れば 1 、光らなければ 0 だ。



ここでは、電流が流れれば光るものとする。
本当は暗く光ったり、電流が流れても光らないこともあるのだが、そうならないことにする。

直列スイッチ

論理積 AND計算のための数をあらわすのに、スイッチが2つ必要だと書いた。


ここで、「どのように」回路に2つのスイッチを入れるかで、2種類の方法がある。

直列につなぐか、並列につなぐかだ。


まずは、直列に入れてみよう(右図)


この図の読み方を簡単に説明しておく。


下に書いてある、長さも太さも違う縦棒2本は、電池の + - を表している。

上に書いてある、丸い部分は豆電球だ。


右側にある sw1 sw2 というのが、2つのスイッチだ。

線が途切れているので、OFF の状態として図に描かれている。


この斜め線の部分を、押してまっすぐにするところを想像してほしい。

線が一直線につながった状態が、スイッチ ON の状態だ。


そして、電池の片方から出た線が、豆電球を通って電池のもう片方まで戻ってくると、豆電球が点く。

電気の通る路(みち)が、電池の + から - まで、ぐるりと回る。だから「回路」(かいろ)と呼ぶ。


もう一度図を見てもらうと、sw1 sw2 とも OFF の状態では、回路は完成しておらず、電気が流れない。

どちらかのスイッチを ON にしても、もう片方が OFF だと、やはり電気は流れない。


しかし、sw1 sw2 ともに ON にすると、電気が流れて豆電球が光る。


これを、先に決めた、ON / OFF 、光る / 光らないを 0 1 に置き換えた形で、改めて書き直してみよう。


sw1 * sw2 = 電球、という形で、スイッチの状態のすべての組み合わせで、電球がどうなるかを示す。


0 * 0 = 0

0 * 1 = 0

1 * 0 = 0

1 * 1 = 1


一番最後、スイッチが両方 1 の時、電球も 1 になっている。

先に確認した動作を式の形で書いてみただけで、なにか新しい現象が起きているわけではない。


しかし、これで話は終わりだ。

おめでとう。君は電気回路を使って、2進数の計算をすることができた。


非常に簡単だけど、これは、2進数1桁の掛け算回路なんだ。


次ページ: 並列スイッチ


1 2 3 4 次ページ

(ページ作成 2019-03-27)
(最終更新 2019-04-02)

戻る
トップページへ

-- share --

10001

-- follow --




- Reverse Link -