「プログラミングってなに?」の記事で、パソコンが理解できるのは0と1だけだと書きました。
0と1で何ができるのか。今回は電気のスイッチ1個から始めて、それを増やしていくとパソコンになる、という話をします。
電気1個で指示1つ
家の電気を1つ思い浮かべてください。つけるか、消すか。2つの状態しかありません。
ここで、こう決めます。
- 電気がついたら → 右手を上げる
- 電気が消えたら → 右手を下げる
右手を上げる
右手を下げる
電気1個で出せる指示は2つ。「上げる」か「下げる」か。これだけです。
電気を2個に増やしてみる
もう1個、電気を追加します。追加したほうには別の指示を割り当てます。
- 追加した電気がついたら → 左手を上げる
- 追加した電気が消えたら → 左手を下げる
さっきの電気と合わせると、組み合わせは4つになります。
電気1個では2通りの指示しか出せなかったのに、2個にしただけで4通りになりました。
増やすほど指示が増える
3個目の電気を追加して、「ついたら立つ、消えたら座る」を割り当てます。
右手(上げる/下げる)× 左手(上げる/下げる)× 体(立つ/座る)。ぜんぶ組み合わせると8通りのポーズが作れます。電気3個だけで、8種類の指示が出せるようになりました。
人間がこれをやると、3個目あたりから頭がこんがらがってきます。「えっと右手上げて、左手下げて、立って...」と考えているうちに間違える。
でもコンピュータは「指示通りに動く」しかできない機械です。混乱しません。「1番目がON、2番目がOFF、3番目がON」と言われたら、そのまま正確に再現します。何個に増えても同じです。指示さえあれば忠実に従う。だからこそ、大量のスイッチを扱えるんです。
電気を1個追加するたびに、今ある組み合わせの数が丸ごと2倍になります。
- 1個 → 2通り
- 2個 → 4通り(2×2)
- 3個 → 8通り(4×2)
- 4個 → 16通り(8×2)
- 5個 → 32通り(16×2)
- 6個 → 64通り(32×2)
- 7個 → 128通り(64×2)
- 8個 → 256通り(128×2)
1個足すたびに2倍。電気を増やす分だけ、出せる指示の数が増えていきます。
8個あれば256通り。アルファベットの大文字・小文字・数字・記号がぜんぶ収まる数です。「この組み合わせのときはAを表示しろ」「この組み合わせのときはBを表示しろ」と、1つ1つ割り当てていけば、文字が扱えます。
電気8個の状態 →「Aを表示しろ」という指示
2番目と8番目の電気が光っている状態
もっと増やせば日本語の漢字やひらがなも扱えます。やっていることはずっと同じです。電気を増やして、その点き方のパターンに指示を割り当てる。増やせば増やすほど、出せる指示が増えていきます。
キーボードは「どの電気をつけるか」を決めるボタン
ここまでの話を使うと、キーボードの仕組みがわかります。
キーボードの「A」のキーを押す。すると内部で「2番目と8番目の電気をつけて、残りは消す」という状態が作られます。パソコンはその状態を受け取って「これはAの指示だ」と判断し、画面にAを表示します。
キーボードの1つ1つのキーは「どの電気をONにして、どの電気をOFFにするか」を1発で決めるボタンです。それが並んでいるのがキーボードです。
今のパソコンの規模
今のパソコンに入っているチップには、電気のON/OFFを切り替えるスイッチ(トランジスタ)が100億個以上入っています。爪の先ほどの大きさの中に、です。
1秒間に数十億回、ON/OFFを切り替えている。だから複雑な計算も、動画の再生も、一瞬でこなせます。
やっていることの原理は「電気がついたら右手を上げる」と同じです。スイッチの数と速さが、桁違いに大きいだけです。
まとめ
- 電気のON/OFFの組み合わせで指示を出すのがコンピュータの基本である
- 電気1個で2通り、2個で4通り、増やすたびに出せる指示が2倍になる
- 8個あればアルファベットや数字が扱える。16個あれば日本語も扱える
- キーボードのキーは「どの電気をON/OFFにするか」を1発で決めるボタンである
- パソコンの中身は100億個以上のスイッチで、原理は照明のON/OFFと同じである