わかりやすく コンピュータ なぜ 0と1
写真を見るのも音楽を聴くのも、コンピュータの中ではたった二つの状態で処理されています。その二つが何なのかは、机の上のスイッチ一つで説明できます。スイッチを一つずつ入れながら、順に解き明かしていきましょう。
オンかオフか、その間はない
部屋の電灯のスイッチは、オンかオフのどちらかです。半分だけオンという中途半端な状態はありません。コンピュータの部品も同じで、回路には電気が流れているか、流れていないかのどちらかです。
そこで、オンの状態を1、オフの状態を0と呼ぶことにしました。0と1は難しい暗号ではなく、スイッチの二つの状態につけた名前にすぎません。電灯のスイッチを上げれば明かりがつき、下げれば消えるのと同じことが、コンピュータの中でも起きています。違うのは、そのスイッチが目に見えないほど小さく、チップ一つに数十億個も入っていることです。
押すたびにオンとオフが切り替わります。ページを開いたときに一度だけ自動で点滅します。
十段階で数えたほうが便利では?
人は指が10本あるので、0から9までを使う十進法に慣れています。それならコンピュータも、電気の強さを十段階に分けて数えればよいのでは? 問題は、電気で十段階をはっきり見分けるのがとても難しいことです。
下の図の上の列は、明るさを十段階に分けたランプです。隣どうしの明るさが似ていて、何段階目なのか迷ってしまいます。下の列はオンとオフの二つだけなので、迷うことがありません。コンピュータが二段階を選んだ理由は、まさにこの確かさです。
人の目には9と8の違いはすぐにわかりますが、機械にとっては「9の強さの電気」と「8の強さの電気」はとても近い値です。電圧が少し揺れただけで、9が8と読み違えられることがあります。オンとオフは差がとても大きいので、多少揺れても読み違えません。速さと正確さが求められるコンピュータにとって、この確かさは何より大切でした。
十段階は隣どうしがまぎらわしく、二段階はひと目で区別できます。
スイッチを並べると数になる
スイッチ一つで表せるのは0か1の二通りだけです。ところが、いくつも並べて位置ごとに値を決めると話が変わります。いちばん右の位を1とし、左へ進むごとに2、4、8と2倍ずつ大きくしていく方法です。
位の値は、右から左へ進むごとに2倍になります。
いよいよ自分で操作する番です。下の8個のスイッチを押すと、オンになった位の値を合計した数が上に表示されます。その合計が、コンピュータの読む数です。最初のミッションは13を作ることです。
オンの値を全部足すと、上の数が変わります。13 = 8 + 4 + 1。
0から順に数える
十進法で9の次に位が上がって10になるように、二進法でも一つの位がいっぱいになると上の位へ繰り上がります。違いはただ一つ、1の次ですぐに繰り上がることです。再生ボタンを押すと、ビットが点滅しながら数が一つずつ増えていきます。
いちばん右のビットは一つ数えるごとに、その隣のビットは二つごとに切り替わります。
この規則に慣れると、0と1だけでいくらでも大きな数まで数えられることが自然に感じられるはずです。私たちの使う十進法も、仕組みはまったく同じです。一つの位に0から9までの10個を入れるか、0と1の2個だけを入れるかの違いにすぎません。
では、文字や絵は?
ここでもう一歩進みましょう。コンピュータが数しか扱えないのなら、文字はどうやって画面に出すのでしょうか。答えは意外と簡単です。文字ごとに番号を決めた対応表を用意して、Aは65番、Bは66番というように決めてあるのです。
下で文字を選ぶと、その文字の番号がすぐに0と1に変わり、小さなマスがオンとオフを切り替えてその数を表します。絵も同じ仕組みです。点の一つひとつの色を数で書いておけば、最後にはすべて0と1になります。
毎日見ている画面も、こうして作られています。数えきれない点がそれぞれ色を数として持ち、その数がさらに0と1で書かれています。文字でも写真でも動画でも、中を開けば同じ0と1の並びです。材料が違うのではなく、同じ材料から違うものを形づくっているのです。
文字を選ぶと、その番号が0と1に変わります。
スイッチが一つ増えるたびに2倍
最後は、いちばん驚くところです。スイッチを一つ足すたびに、表せるパターンの数が2倍になります。1個なら2通り、2個なら4通りです。たいしたことがないように見えても、下のスライダーを最後まで動かせば印象が変わります。
ビットを増やすと、光る立方体の数が2倍ずつ増えます。ドラッグして回すこともできます。
ビットがたった8個で、もう256通りです。16個なら6万通りを超えます。2倍ずつ増えるだけで、あっという間に途方もない数になるわけです。単純なスイッチでこれほど大きな世界を表せる秘密は、ここにあります。ギガやテラといった単位も、こうしたスイッチがどれだけ集まったかを数える言葉です。