シリーズ「コンピュータの文字のしくみ」 第1回
回路が「文字にする」とは?
掲示板の中身
駅のホームで、次の電車を知らせる掲示板を見上げる。 種別、行き先、発車の時刻、何両で来るか。
少し前まで、この掲示板の多くは、板をめくって文字を替えていた。 パタパタという音から、そのまま「パタパタ」と呼ばれている。 いまは、パタパタは減ってきていて、代わりに、細かい点が光って文字を描く掲示板が増えている。
2 つの掲示板は、似ているようで、まるで違う。
パタパタの板には、行き先の名前が、はじめから刷ってある。 出せるのは、刷ってある板の文字だけだ。 新しい駅ができたら、板を作って足さなければならない。
光る掲示板には、文字の板が無い。 点を光らせて、どんな形でも描ける。 では、「次は、どの文字を描くか」は、どうやって掲示板に伝わっているのだろう。
掲示板の向こうには、コンピュータがある。 そして、コンピュータの中にも、そこから掲示板へ延びる線の中にも、文字の形をしたものは入っていない。 あるのは、0 と 1 だけだ。 『記憶のしくみ』を読んだ人は、第5回のパタパタを思い出してほしい。あれは、めくっている途中の板に、ありもしない時刻が出てしまう話だった。
0 と 1 しかないところで、どうやって「品川」や「A」を伝えるのか。 このシリーズでは、0 と 1 が文字になるまでを、掲示板の中身をたどりながら見ていく。
ほかのシリーズを読んでいなくても、心配はいらない。 要るのは、0 と 1 の区別だけだ。
パターンに、名札を貼る
0 と 1 は、2 通りしかない。 これでは、文字を 2 つしか区別できない。
そこで、何桁か並べて使う。
1 桁なら 2 通り。2 桁なら 00・01・10・11 の 4 通り。
1 桁増えるたびに、通りの数は倍になる。
2、4、8、16、32、64、128、256。
8 桁並べれば、256 通りだ。
このような 0 と 1 の並びを、このサイトではパターンと呼ぶ。 コンピュータは、パターンを 8 桁ずつのまとまりで扱うことが多い。 このまとまりを、このシリーズでは語と呼ぶ。一般にはバイトという名前で知られている(この名前は、ここで一度出すだけにする)。
さて、ここからが本題だ。 パターンに、文字を割り当てる。
0100 0001 は「A」。0100 0010 は「B」。
パターン 1 つ 1 つに、文字を書いた名札を貼っていくようなものだ。
このシリーズでは、この割り当てを名札と呼ぶ。
名札を 1 枚ずつ決めて、表にしておく。
書く人も読む人も同じ表を使えば、0 と 1 しか送れない線でも、文章を送れる。
パターンと文字の対応を決めた約束を、文字コードという。
困るのは、表を作る人がばらばらだと、ある会社の機械で書いた文章を、別の会社の機械で読めないことだ。 そこで、1963 年、アメリカの規格の団体(アメリカ規格協会)が、1 つの表を決めた。 ASCII(アスキー)という。American Standard Code for Information Interchange、「情報をやりとりするための、アメリカの標準の符号」の頭文字である。
ASCII が使うのは、7 桁ぶん、つまり 128 通りだ。
8 桁の語に入れるときは、いちばん上の桁を 0 にしておく。
はじめの版の ASCII には、小文字が無かった。 小文字は、のちの改訂で、空けてあった場所に入った。 その置き方には、ちょっとした工夫がある。それは、この回の後半で見る。
押して、確かめる
ASCII の表を、そのまま押せるようにしてみた。
文字の表 シミュレータ
8 つのマスを押して、パターンを作ってみてください
0100 0001 を文字として読むと
A
下 ↓
灰色のマスは、目に見える文字ではなく「合図」。␣ は空白
上の 8 つのマスが、語の 8 桁だ。
押すと、0 と 1 が切り替わる。
はじめは 0100 0001。
下の表で、光っているマスを探してほしい。
「A」のマスが光っている。
表の見方は、こうだ。
上 4 桁で列を選び、下 4 桁で行を選ぶ。
0100 0001 なら、0100 の列の、0001 の行。
右の 2 つのマスを押して、0100 0010 にしてみてほしい。
光るマスが 1 つ下へ動く。「B」だ。
英字は、表の中にアルファベットの順で並んでいる。
今度は、いちばん左のマスを押して 1 にしてみてほしい。
表の中のどこも光らなくなる。
ASCII は 7 桁ぶんしか決めていないので、いちばん上の桁が 1 のパターンは、この表の外にある。
表の見出しを、もう一度見てほしい。 灰色の字で、「人間のメモで、回路はこの表を見ていない」と書いてある。
回路が持っているのは、上の 8 つのマスだけだ。
8 本の線のうち、どれが 1 で、どれが 0 か。
それを「A」と読んでいるのは、下の表のほうである。
数の 1 と、文字の「1」
表の中には、数字もある。
0011 の列を見てほしい。「0」から「9」までが並んでいる。
ここで、少し引っかかることがある。 パターンは、そもそも数を表すのにも使う。
8 桁のパターンを数として読むときは、右の桁から順に、1 の位、2 の位、4 の位、8 の位……と、位の重みを倍々にしていく。
いちばん左は 128 の位だ。
1 の立っている位の重みを足せば、ふつうの数になる。
0000 0001 なら、1 の位だけが 1 なので、数の 1。
では、表で「1」の字が書いてあるマスは、どのパターンか。
0011 の列の 0001 の行。0011 0001 だ。
同じ「1」でも、数の 1 と、文字の「1」は、別のパターンなのである。
0011 0001 を数として読むと、32 + 16 + 1 で、49 になる。
下のシミュレータで、読み方を切り替えてみてほしい。
文字の表 シミュレータ
8 つのマスを押して、パターンを作ってみてください
0011 0001 を文字として読むと
1
下 ↓
灰色のマスは、目に見える文字ではなく「合図」。␣ は空白
切り替えても、上の 8 つのマスは、1 つも変わらない。
変わるのは、下に出てくる答えだけだ。
同じ 0011 0001 が、文字として読めば「1」、数として読めば 49 になる。
読み方を取り違えると、おかしなことが起きる。
文字の「1」と「2」を、数のつもりで足してしまったとしよう。
0011 0001 は 49、0011 0010 は 50。足すと 99 だ。
99 は 0110 0011。これを文字として読むと、「c」になる。
1 + 2 が「c」。
回路は、言われたとおりに足しただけである。
パターンそのものは、数でも文字でもない。 数として読むか、文字として読むか、どの表で読むかを決めているのは、読む側だ。
さきほど、パターンに文字の名札を貼っていく、と書いた。
けれど、名札は、パターンに貼り付けてあるわけではない。
0011 0001 のどこにも、「1」とも 49 とも書いていない。
名札を貼るのは、読む側だ。
読むたびに、手に持った表から名札を取って貼っている。
回路の中にあるのはパターンだけ。どのパターンをどの文字と読むかは、人が決めた約束(名札)だ。
『計算のしくみ』を読んだ人は、第4回の「12 と書くか -4 と書くかは、席に貼る名札の違いでしかない」を思い出してほしい。あれは数どうしの読み替えだったが、名札の貼り替えは、数と文字のあいだにまで広がっている。
1 桁だけ、違う
表の「A」と「a」を見比べてみよう。
| 文字 | パターン | 数として読むと |
|---|---|---|
| A | 0100 0001 | 65 |
| a | 0110 0001 | 97 |
並べてみると、違うのは、左から 3 桁目の 1 桁だけだ。 その桁の重みは 32。65 と 97 も、ちょうど 32 違う。
「B」と「b」も、「Z」と「z」も、同じだ。 大文字と小文字は、どれも、この 1 桁だけが違う。
ということは、この 1 桁をひっくり返せば、大文字と小文字が入れ替わる。 それをする回路を作ってみよう。
使うのは、XOR(エックスオア)という部品を 1 つだけ。
XOR は、2 つの入口に 0 か 1 を受け取って、次の表のとおりに 0 か 1 を返す。
| 入口 1 | 入口 2 | 出口 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
2 つの入口が食い違っているときだけ、1 を返す。
この表を、入口 1 を「切り替え」と思って読み直してみてほしい。
切り替えが 0 の上 2 行では、出口は入口 2 と同じ。そのまま通している。
切り替えが 1 の下 2 行では、出口は入口 2 の反対。ひっくり返している。
そこで、8 本の線のうち、左から 3 桁目の線にだけ、XOR をはさむ。 もう一方の入口には、「大文字 ↔ 小文字」の切り替えスイッチをつなぐ。 ほかの 7 本には、何もしない。
大文字 ↔ 小文字 シミュレータ
「大文字 ↔ 小文字」のスイッチを押してみてください。左の 8 つのスイッチで、入口のパターンも替えられます
切り替えが 0 のあいだ、XOR は 32 の位をそのまま通す。出口は入口と同じ
はじめ、入口は 0100 0001、「A」だ。
「大文字 ↔ 小文字」のスイッチを押してみてほしい。
出口が 0110 0001 になり、「a」と読める。
もう一度押すと、「A」に戻る。
左のスイッチで、入口をほかの英字にしても同じだ。 英字なら、52 文字のどれでも、大文字と小文字が入れ替わる。
この回路は、「A」も「a」も知らない。 左から 3 桁目の線を、ひっくり返しているだけだ。 それを「大文字が小文字になった」と読んでいるのは、ここでもやはり、表を手に持った私たちのほうである。
英字ではないものを入れると、それがよく分かる。
入口を 0011 0001(文字の「1」)にして、切り替えてみてほしい。
出口は 0001 0001。表では、目に見えない「合図」のマスになる。
「@」は「`」に、「[」は「{」に変わる。
回路はいつも同じことをしている。意味が通るのは、英字のときだけだ。
大文字と小文字が 1 桁だけ違うのは、偶然ではない。 小文字を表に入れるとき、大文字とちょうど 32 ずれた場所に、同じ順で並べたのだ。 こうしておくと、大文字と小文字を区別せずに文字を比べたり、キーボードや印字の機械を作ったりするのが楽になる。 表を決めた人たちは、名札の貼り方を、回路が扱いやすいように選んでいた。
『計算のしくみ』を読んだ人は、第1回の XOR を思い出してほしい。あそこでは、同じ XOR が「足し算の答えの桁」を出していた。同じ部品の同じ働きが、足し算にも、大文字と小文字にもなる。
目に見えない文字
表の中の灰色のマスを、数えてみよう。
左の 2 列(0000 と 0001 の列)の 32 マスと、右下の隅の 1 マス。
あわせて 33 マスある。
ここに入っているのは、目に見える文字ではない。 機械に何かをさせるための合図だ。 いくつか拾ってみる。
| パターン | 名前 | 意味 |
|---|---|---|
0000 0111 | BEL | ベルを鳴らす |
0000 1000 | BS | 1 文字戻る |
0000 1010 | LF | 改行(次の行へ進む) |
0000 1101 | CR | 行の頭へ戻る |
0111 1111 | DEL | 消す |
残りの 95 マスが、目に見える文字だ。
0010 0000 の空白から、0111 1110 の「~」まで。
英字の大文字と小文字が 52、数字が 10、残りの 33 が空白と記号である。
文章の中の改行も、こうした合図のパターンの 1 つとして、文字と文字のあいだに並んでいる。 画面で行が変わって見えるのは、読む側がそのパターンを見つけて、次の行へ進めているからだ。
足りない
128 通りの表で、英語の文章は書けた。 大文字と小文字、数字、記号、それに改行などの合図。
けれど、駅の掲示板には、日本語も出る。 ひらがな、カタカナ、漢字。 128 通りでは、とても足りない。 この話は、もう少し先の回でする。
その前に、1 つ、片付けていないことがある。
掲示板に届くのは、0100 0001 のようなパターンだ。
けれど、掲示板に光っているのは、「A」の形である。
表を引いて、0100 0001 を「A」と読めるのは、人間だ。
回路は、表を見ていない。
「A」がどんな形をしているのかも、知らない。
それでも掲示板は、点を光らせて、ちゃんと「A」の形を描いている。
パターンを、どうやって光る形にするのか。
次回は、いちばん簡単な形から始める。掲示板の、発車の時刻の数字だ。
参考文献
- 松下俊介 著. 基礎からわかる論理回路. 第2版, 森北出版, 2021.7. 978-4-627-82842-1. https://ndlsearch.ndl.go.jp/books/R100000002-I031573740
- 馬場敬信 著. 算数で読み解くコンピュータのしくみ, 技術評論社, 2022.8. 978-4-297-12960-6. https://ndlsearch.ndl.go.jp/books/R100000002-I032268791
- チャールズ・ペゾルド 著 ; 酒匂寛 訳. CODE : コードから見たコンピュータのからくり. 第2版, 日経BP, 2024.2. 978-4-296-08024-3. https://ndlsearch.ndl.go.jp/books/R100000002-I033318457
- Engineering and Technology History Wiki. "Milestones:American Standard Code for Information Interchange ASCII, 1963". IEEE History Center. https://ethw.org/Milestones:American_Standard_Code_for_Information_Interchange_ASCII,_1963, (参照 2026-10-26).
- Wikipedia. "ASCII". Wikipedia, The Free Encyclopedia. https://en.wikipedia.org/wiki/ASCII, (参照 2026-10-26).
- V. Cerf. "ASCII format for Network Interchange". RFC 20, 1969. https://www.rfc-editor.org/rfc/rfc20, (参照 2026-10-26).
- 鉄道コム. "発車時刻になるとパタパタパタ……減りつつある「反転フラップ式」の発車標". 鉄道コム. https://www.tetsudo.com/column/141/, (参照 2026-9-22).