論理ゲートと2進数 — スイッチが作る計算の世界
コンピュータの中身は、突き詰めれば無数の小さなスイッチ。オン=1、オフ=0。このオンオフを組み合わせるだけで、足し算も、文章も、画像も、あらゆる計算が生まれます。まずは一番底 — トランジスタというスイッチ、論理ゲート、そして2進数を、触って確かめましょう。
1. トランジスタは電気で動くスイッチ
CPU の中にぎっしり詰まっているトランジスタは、電気で切り替わるスイッチです。制御信号(ゲート)に電圧をかけると、別の電流の通り道が開いたり閉じたりする。閉じれば電流が流れてランプが点灯=1、開けば流れず消灯=0。ボタンを押してスイッチを切り替えてみてください。
スイッチ1つ = 1ビット
制御信号(下からの矢印)に電圧をかけるとスイッチが閉じ、青い電子が回路をめぐってランプが灯ります。開けば電流ゼロで消灯。この「通す/通さない」が、コンピュータのすべての1と0の正体です。
POINT — スイッチ1つが「1ビット」
オンかオフか、その2択の情報のかたまりが1ビット(bit)。最新のCPUには、このスイッチが数百億個も敷き詰められている。すべての計算は、この小さなオンオフの集まりでしかない。
2. スイッチを組み合わせる — 論理ゲート
スイッチを配線でつなぐと、入力の0/1から出力の0/1を決める部品 論理ゲートができます。基本は AND(両方1のとき1)・OR(どちらか1で1)・NOT(反転)。よく使う XOR(違うとき1)と NAND(ANDの否定)も並べました。A・B を切り替えて、真理値表を自分で埋めてみましょう。
論理ゲートと真理値表 — A・B を切り替えて埋める
緑に光ったランプが出力=1。A・B の4通り(00・01・10・11)をすべて試すと、下の真理値表が埋まっていきます。ゲートごとに光り方が違うことに注目。
AND = A·B OR = A+B NOT = ¬A XOR = A⊕B NAND = ¬(A·B)
じつは NAND ゲートだけあれば、他のすべてのゲートを組み立てられる(万能ゲート)
注意 — OR と XOR は別物
日常語の「または」は片方でも両方でもよい=OR。「どちらか一方だけ」は XOR。A=1, B=1 のとき OR は 1 だが XOR は 0。この違いが、次のレッスンの足し算で効いてくる。
3. 0と1だけで数を表す — 2進数
スイッチは 0 か 1 しか表せません。では大きな数は? 桁を並べます。10進数が 1・10・100 と10倍ずつ位が上がるのに対し、2進数は 1・2・4・8・16… と2倍ずつ。ONにした桁の重みを足すだけで、その数になります。各ビットをクリックして切り替えてみましょう。
2進数エクスプローラー — ビットをクリックして数を作る
各マスがスイッチ(ビット)。緑にした桁の重み(下の数)を足すと10進数になります。例えば 128 と 8 と 2 を立てれば 138。数直線のマーカーが、その値の位置を示します。
値 = Σ biti × 2i
8ビット=1バイトで 0〜255 の 256 通り。0 も 1 つの状態なので「最大値」は 2n−1
4. n個のスイッチで 2ⁿ 通り
ビットを1本増やすと、表せる数は2倍になります。n ビットなら 2n 通り。カウンタを動かして、桁が繰り上がりながら全パターンを巡る様子を見てください。一番右のビットは毎回、その左は2回に1回、さらに左は4回に1回…と、半分ずつの周期で点滅します。
2進カウンタ — 全 2ⁿ 状態を巡る
オレンジ枠は「いま反転したビット」。右端のビットが最も速く、左へ行くほどゆっくり点滅するリズムに気づけば、2進数のしくみが体に入ります。カウンタは 2n−1 まで行くと 0 に戻ります。
POINT — 情報量はビット数で決まる
n ビットで表せる状態は 2n 通り。1ビット増えるごとに世界の広さが倍々に増える。文字も色も音も、すべては「何ビット割り当てるか」で表現の細かさが決まっている。
5. まとめ — すべてはオンオフから
- トランジスタ=スイッチ:オン/オフで 1 ビットを表す。CPUはこの塊。
- 論理ゲート:スイッチの組み合わせで AND・OR・NOT・XOR などの論理演算を作る。
- 2進数:桁を並べて数を表す。n ビットで 2n 通り。
一歩先へ — ここから CPU まで
これらのゲートを組み合わせると足し算器ができ(次のレッスン)、足し算器を束ねれば ALU、ALU に「どの演算をするか」の制御を付ければ CPU になる。すべては、この小さな on/off のスイッチから積み上がっている。理論上は NAND ゲートだけで、どんな計算機でも作れてしまう。