信号とコード:点字・モールス・情報伝達の原理
点字・モールス信号・QRコード・火星ローバーのパラシュートを通して「コードとは何か」「ビットとは何か」を理解する。CODE第2版 Ch.1-3, 5の解説。
コードとは何か
「コード」は暗号ではなく、信号に意味を割り当てるルールのことを指す。
信号それ自体は意味を持たない。懐中電灯の点滅は「電球がついたり消えたりしている」という物理現象に過ぎない。それが「長い点滅はA、短い点滅はB」と決めた瞬間、信号はコードになる。
物理現象(信号)
点滅のパターン: ー ・ ー ・
↓ コード(ルール)を適用
意味
モールス信号なら: C(ー・ー・)
コンピュータの1と0も同じ構造。電圧が高い/低いという物理現象に、人間が「1」「0」という意味を割り当てたコードにすぎない。
点字(Braille):6ビットの符号化
ルイ・ブライユが1824年に考案した、触覚で読む文字コード。
点字の基本構造:2列 × 3行 = 6つの凸点
① ④
② ⑤
③ ⑥
各点が「ある(1)」か「ない(0)」かで文字を表す
→ 2^6 = 64通りの組み合わせ
例:文字 "A"
● ○ 点 ①だけ凸
○ ○ = 100000(2進数)
○ ○
点字が示す本質:6個の「はい/いいえ」で64種類の情報を表現できる。
これはコンピュータの1バイト(8ビット)が256通りを表現できるのと全く同じ構造。
モールス信号:可変長コードの先駆け
1836年、Samuel Morse と Alfred Vail が開発した電信用コード。
アルファベットのモールス信号(一部):
E ・ 最短(出現頻度が最高)
T ー
A ・ー
I ・・
N ー・
S ・・・
O ーーー
K ー・ー
R ・ー・
可変長コードの発想:よく使う文字(E, T)を短く、珍しい文字を長くすることで、全体の伝送効率を上げる。これは現代の Huffman 符号化や ZIP 圧縮の基本原理と同じ。
モールス信号の弱点:区切りが必要(短い休止が文字間、長い休止が単語間)。コンピュータの符号化は一般に固定長(ASCII の7ビット、Unicodeのコードポイント)を使う。
隣の家に信号を送る:懐中電灯から電信へ
本書はここから始まる。「向かいの家の友人と夜に秘密の会話をしたい」という問いが出発点。
【ステップ1:懐中電灯1本】
自分 友人
[懐中電灯] ──点滅──→ 見る
問題:点滅パターンを事前に決めておく必要がある(コードが必要)
【ステップ2:複数の懐中電灯】
[電灯A] ──────→
[電灯B] ──────→ 2本 = 4通り (00/01/10/11)
[電灯C] ──────→ 3本 = 8通り → アルファベット全部 OK
【ステップ3:電線で接続】
[スイッチ] ──電線──→ [電球]
これが電信の基本。距離は電線の長さ次第で無限に伸ばせる。
電線1本 = 2値信号 = 1ビット。これが「デジタル」の原点。
角を曲がって信号を送る
電線は角を曲がれるが、懐中電灯の光は直進する。これが電気の強みの一つ。
さらに重要なのは「中継」の概念:
発信者 ──長い電線──→ [中継器] ──長い電線──→ 受信者
信号は電線を伝わるうちに弱くなる(抵抗による電圧降下)
中継器が信号を受けて、新しい信号として送り直す
→ 距離の制限がなくなる
これが後章で登場する「リレー(継電器)」の役割と同じ。リレーは電気信号によって動作する電磁スイッチで、弱った信号を受けて強い新信号を生成する。
NASA Perseveranceパラシュートの隠しメッセージ(第2版追加)
2021年2月、火星探査機 Perseverance が大気圏突入時に展開したパラシュート。オレンジと白の布のパターンに、開発チームのメッセージが2進数で織り込まれていた。
パラシュートの断面(外輪から内側へ):
外輪:DARE MIGHTY THINGS(テオドア・ルーズベルトの言葉)
内輪:GPS座標(JPL / NASAジェット推進研究所の住所)
符号化の仕組み:
オレンジ = 1、白 = 0
8ビット(1バイト)= 1文字(ASCIIコード)
パラシュートを24セクタに分割して文字を配置
これは「2進数→ASCII文字」という符号化の実例。本書の前半で学ぶ内容が、実際の宇宙探査に使われている。
QRコードの符号化の考え方
QRコード(Quick Response Code)も同じ原理の発展形。
黒マス = 1、白マス = 0
2次元の格子 → 多数のビットを格納
特徴:
・誤り訂正コード付き(最大30%まで破損しても読める)
・位置検出パターン(左上・右上・左下の大きな正方形)
・数字・英字・バイナリ・漢字モードを切り替えられる
QRコードの最大容量(バイナリモード):
バージョン40(177×177マス)→ 約2,953バイト
ビットとは何か
ここまでの例をまとめると、「ビット」の本質が見えてくる。
ビット(bit)= Binary Digit = 「2択の答え1つ分」
・懐中電灯の点滅:ついている / 消えている
・電信の電流:流れている / 流れていない
・点字の凸点:ある / ない
・パラシュートの色:オレンジ / 白
・QRコードのマス:黒 / 白
すべて同じ:情報の最小単位 = 1ビット
n ビットで 2^n 通りの情報を区別できる:
1ビット → 2通り
2ビット → 4通り
3ビット → 8通り
8ビット(1バイト) → 256通り
16ビット → 65,536通り
32ビット → 約42億通り
64ビット → 約1.84京通り
「コンピュータはなぜ2進数を使うか」という問いへの答えはシンプル:電気は「ある」か「ない」かしかないから。 2値信号が最も安定・安価・実装しやすい。
まとめ:コードの三要素
1. 信号:物理現象(電圧・光・音・凸点・色)
2. ルール:信号と意味の対応表(コード)
3. 意味:送り手と受け手が共有する解釈
どんな情報伝達も、この三要素で成り立っている。
コンピュータはこれを電気信号で、高速かつ大量に処理するだけ。 - 1. 📖CODE:コンピュータのからくり — シリーズ概要
- 2. 📡信号とコード:点字・モールス・情報伝達の原理
- 3. ⚡電気とリレー:懐中電灯から論理ゲートへ
- 4. 🔢数の体系:2進数・16進数・ASCIIからUnicodeへ
- 5. ➕算術回路:加算器・2の補数・減算の実装
- 6. 💾記憶と時計:フリップフロップ・クロック・RAM
- 7. 🖥️CPUの構造:ALU・レジスタ・バス・制御信号
- 8. 🖥️OSとプログラミング:機械語から高水準言語まで
出典: https://www.amazon.co.jp/dp/4296080245