このサイトは、ほんの入り口です

ここにあるのは、だれかが実際に調べ、考え、作ってきたことを集めたメモです。気になったら、ページの下の「参考にした情報源」から、もとの本や記事、それを生み出した人たちに、直接ふれてみてください。このメモには書ききれないおもしろさが、そこにあります。

紙テープに あけた あなの ならびで、どうやって 文字を あらわしたの?

紙テープの穴の並びは、どうやって文字を表したのか ── 打ち間違いの直し方からASCIIまで

紙テープの穴は、どう文字を表したのか ── 5つ穴の32通り、打ち間違いの消し方、7ビットのASCII

分野:技術

紙テープに あけた あなは、あとから ふさげません。まちがえて あなを あけたら、どうしたと おもいますか。

ASCII(アスキー)と いう ふごうの テープでは、まちがいの ところに、ぜんぶの あなを あけた 文字を かさねました。ぜんぶ あいた 文字は「むしする」と きめて いたのです[7]。五つ あなの テープは、また ちがう しくみでした。この 記事では、あなの ならびが どうやって 文字に なるのか、その わけが わかります。

紙テープにあけた穴は、あとから塞げません。打ち間違えたとき、ASCIIの7つ穴の紙テープでは、その場所に全部の穴をあけた文字を重ねて「無視する文字」にしました[7]。5つ穴のテープは、これとは別の方式でした。

では、そもそも穴の並びは、どうやって文字になったのでしょうか。穴が横に5つなら、並べ方は計算の上で32通りしかありません。それでも文字も数字も書けた理由と、7つ穴・8つ穴のASCIIへ広がった道すじが分かります。

紙テープの穴はあけたら戻せない。そのためASCIIの7ビット紙テープでは、打ち間違いの上に、全部の穴をあけた「無視する文字」を重ねて直した。5ビットのテープとは方式が違う[7]。では、穴の並びはどのようにして文字になり、5つ穴の32通りという少なさはどう乗りこえられたのか。

切り替え、頻度による割り当て、送り穴、パリティの順に、穴を数える目で見ると、ASCIIの7ビットと8つ穴がなぜそうなったかが分かる。

読み方を切り替えられます。画面の上にある「よみかた」のボタンで、小学校低学年むけ・小学校高学年むけ・中学生むけの3つの書き方に切り替わります。むずかしいと思ったら、いつでもやさしい方に戻ってください。選んだ読み方はブラウザが覚えているので、次に別の記事を開いたときも同じ読み方で始まります。

1. まちがえたら、ぜんぶの あなを あける

1. 戻せない穴を、全部あけて「無かったこと」にする

1. 打ち間違いは、全部の穴で「無視」にする

むかしの でんしんでは、紙テープに あなを あけて、文字を きろくしました[1]。あなが ある、ない。この ふたつの ちがいで、あらわします。

うちまちがいを したら、どうするのでしょう。けしゴムは つかえません。ASCIIの テープでは、パンチを 一つ もどして、まちがいの 上に ぜんぶの あなを あけた 文字を かさねました。ぜんぶ あいた 文字は、「むしする 文字」でした[7]。

ぜんぶの あなを あけた ならびは、あなが 七つなら 1111111 と かきます。あなは「1」、ない ところは「0」です。あなの ならびを 数字で かく、と いう ことです。

さて、あなが 五つだけの テープも ありました。五つの あなで、いくつの ならびが できるでしょう。

電信では、紙テープに穴をあけて文字を記録しました。穴があるか、ないか。この二択で、1ビットの情報になります[1]。

穴はあけたら戻せません。そこで、ASCIIの7ビット紙テープには、打ち間違いに独特の直し方がありました。操作する人はパンチを1つ戻して、DEL(127、2進数で1111111)を打ち、誤りに重ねます。全部の穴があくので、その場所は「無視する文字」になりました[7]。

「1」は穴がある、「0」は穴がない、と書くと、1111111は7つの穴が全部あいた並びです。穴を消せないなら、全部あけて意味をなくす、という発想です。

では、そもそも穴の並びは、どのように文字を表していたのでしょうか。

紙テープは、穿孔(穴をあけること)の有無で1ビットを記録する媒体である[1]。穴は一度あけると元に戻せない。そのため、ASCIIの7ビット紙テープでは、打ち間違えたときにパンチを1つ戻し、DEL(127=2進数で1111111)を打って、誤りの上に重ねた。DELは打ち間違えた場所に重ねて、その位置の文字を読み飛ばすために使った[7]。

ここで言う「無視」は、穴を消すのではなく、全部の穴を重ねて読み飛ばす印にする発想である。穴の数と並びが、そのまま文字の意味を決めている世界だったことが分かる。では、穴の並びはどのように文字を表していたのか。

2. 五つの あなで、いくつの ならびが できる?

2. 穴が5つなら、並びは32通り

2. 5つ穴の32通りで、文字や数字を表せるか

あなが 一つなら、「ある」と「ない」で 2とおり。二つなら 4とおり、三つなら 8とおり、四つなら 16とおり、五つなら 32とおりです。ふえるたびに、ちょうど 二ばいに なります。

むかしの でんしん用の テープは、はじめ 五つ あなの 列でした[8]。つまり、つくれる ならびは 32とおりです。アルファベットだけで 26字。のこりは 6しか ありません。

数字は 0から 9まで 10こ あります。そのままでは、入りきりません。どうしたのでしょう。

穴が1つなら2通り、2つなら4通り、3つなら8通り。5つなら2×2×2×2×2で32通りです。1つ増えるごとに、ちょうど2倍になります。6つなら64通り、7つなら128通り、8つなら256通りです。

電信用の紙テープは、はじめ、幅方向のデータ用の穴が5列でした。のちに6列・7列・8列のものも使われています。幅は、5ビット符号用が約17mm、6ビット以上は約25mmが一般的でした[8]。

5つ穴の32通りで、アルファベットは26字ですから、残りは6通りです。数字10個や、句読点、機械への合図まで入れるには、どう考えても足りません。足りない分をどうしたのか。そこに、文字を送る人たちの工夫がありました。

穴が横に5列なら、それぞれが有無の2値なので、並びは2の5乗で32通りである。6列なら64通り、7列なら128通り、8列なら256通りと、1列増えるごとに倍になる。紙テープのデータ穴は、当初は幅方向に5列で、のちに6〜8列も使われた。幅は5ビット符号用が約17mm、6ビット以上は約25mmが一般的だった[8]。

電信での紙テープの利用は早く、ベインが電報の送信に使ったのが早い例とされる。ただし年は資料によって1846年から1850年までぶれる。ホイートストンは1857年ごろに電信用に採り入れた。このホイートストン方式では、モールスの点を縦に並ぶ3つ穴、線を上と下の穴の組みとし、真ん中の穴だけは何も変えない区切りに使った。つまり、穴の位置の組み合わせで信号を記録した[2]。穿孔機が1867年に出ると、回線の送信速度を毎分約70語まで上げられたとされる[2]。

しかし5つ穴の32通りには限りがある。アルファベット26字で残りは6通りにすぎず、数字10個、句読点、制御の合図を加えれば足りなくなる。そこで、同じ並びを文字と数字に読み分ける工夫が生まれた。

3. おなじ ならびを、二とおりに 読む

3. 同じ穴の並びを、2通りに読み分ける

3. 32通りを超えるシフト ── 文字側と数字側の切り替え

こたえは「きりかえ」です。ここからは、五つ あなの テープの はなしです。五つの あなの ならびに、「文字の とき」と「数字の とき」を つくりました[3]。

スマホで「あいう」の にゅうりょくと「123」の にゅうりょくを ボタンで かえる ことが ありますね。おなじ ならびでも、どちらの モードかで ちがう ものとして 読まれる ところが、紙テープと にて います。ちがうのは、人が 画面を かえるのでは なく、読む きかいが 前の あいずを おぼえて いる ところです。

この ふごうを 考えた のは、フランスの でんしんの ぎし ボードーで、1874ねんに とっきょを とったと されます[3]。つうしんの はやさを あらわす たんい「ボー」は、この 名前から きています[3]。

答えは「切り替え」です。ボードーの流れをくむ5ビット符号には、切り替え用の合図が2つあります。文字側(LTRS)と数字側(FIGS)です[3]。

同じ穴の並びでも、直前にどちらへ切り替えたかで、読み方が変わります。スマホで「あいう」と「123」を切り替えるのと似ています。ただし本当は、人が切り替えるのではなく、読む機械が直前の合図を覚えていて、並びを読み分けます。

この切り替えを使う符号は、国際電信アルファベット第2号(ITA2)として、1932年にCCITTが国際標準にしたとされます[3]。5つ穴の32通りが、2つの表を使い分けることで、32通りより多くの文字を表せるようになりました。

この符号を考えたのは、フランスの電信技師エミール・ボードーで、1874年に特許を取っています。通信速度の単位「ボー」は、この名前にちなみます[3]。

ところで、32通りのうち、どの並びをどの文字に当てるかは、別に決める必要があります。その決め方には、機械への思いやりがありました。

5ビットで足りない分は、符号を2つの部分集合に分けて補った。ボードー系の符号では、文字側(LTRS)と数字側(FIGS)の2つに切り替えるための符号を決めておく。受信側の機械は直前にどちらの切り替えを受けたかを保持し、同じ5つの穴の並びを、文字として読むか数字・記号として読むかを決める[3]。32通りという数は変わらないが、2つの表を使い分けるので、表せる種類が増える。

この5ビット符号を特許にしたのはフランスの電信技師エミール・ボードーで、1874年である(発明自体は1870年代)。通信速度の単位「ボー」は、この人名による[3]。のちの改良版もまとめて「ボードー符号」と呼ばれることが多いが、実際には別人の手が入っている[4]。この切り替えを使う符号は、ITA2(International Telegraph Alphabet No. 2)として1932年にCCITTが国際標準にしたとされる[3]。

限界もある。切り替えの合図を読み落とせば、以降の文字は別の表で読まれる。見かけの容量が増えた代わりに、機械が「いまどの表か」を覚える必要が生じた。ところで、32通りのうちどの並びを、どの文字に当てるかは別に決めねばならない。

4. よく つかう 文字ほど、あなを 少なく

4. よく使う文字には、穴の少ない並びを

4. マレーの改良 ── 頻出する文字に少ない穴を割り当てる

1901ねん、ニュージーランドの マレーという 人が、ボードーの ふごうを つくりなおしました[4]。

マレーは、よく つかう 文字には、あなの 少ない ならびを あてました。あなを あける きかいは、あなが 多いほど うごく 回すうが ふえて、すりへります。だから、あなの 少ない ならびを よく つかう ほうが、きかいが いたみにくいのです[4]。

マレーは、キーボードで あなを あける きかいも 作りました。打つ 人は 紙テープを つくる 係、おくる きかいは べつ。だから、自分の はやさで 打てました。1分に 30〜45語です[4]。

あなを あけると、小さな まるい 紙が 出ます。「チャッド」と よばれます[8]。

1901年、ニュージーランド出身のドナルド・マレーが、ボードーの符号を改めました。ここが大事な点です。32通りをどの文字に当てるかを、よく使う文字ほど穴の数が少なくなるように決めたのです[4]。

穴は、あけるたびに機械が動きます。穴の多い並びを何度も使えば、機械のすり減りが増えます。よく出る文字に少ない穴を当てれば、全体の穴の数が減り、機械が傷みにくくなる、という設計でした[4]。

マレーはキーボード穿孔機も作りました。キーを打つと紙テープに穴があき、そのテープを別の機械が読んで送ります。テープを作る係と送る機械が分かれていたので、打つ人は自分のペースで打てました。打鍵の速さは毎分30〜45語です[4]。穴をあけるたびに、「チャッド」と呼ばれる小さな丸い紙片が出ます[8]。

電信の中継所では、受けた通信を打ち直さずに別の回線へ送るため、5ビットのテープを再び穴にする機械と読み取り機がつながっていました。中継を待つテープの棚が並んでいたそうです[5]。

ところで、テープを読む機械は、穴の列をいつ読めばよいのでしょうか。

1901年に、ニュージーランド出身のドナルド・マレー(1865〜1945)がボードーの符号を改め、キーボード穿孔機も作った。設計の工夫は、穴の数が少ない並びを、よく使う文字に当てた点にある。穿孔は機械の動きを伴うので、使用頻度の高い文字に少ない穴を割り当てれば、機械のすり減りを減らせるからだ[4]。

キーボード穿孔機で、送信の流れも変わった。テープを作る係と送る機械が分かれ、人は自分の速さで打てた。打鍵の速さは毎分30〜45語とされる[4]。穿孔のたびにチャッドと呼ばれる丸い紙片が出る[8]。

中継所では、テレプリンターが5ビットテープのパンチと読み取り機につながり、受けた通信を打ち直さずに別の回線へ送り直せた。中継を待つテープの棚が並んでいたという[5]。ここまでは「穴をあける」側の工夫である。では穴を読む側は、列をいつ読めばよいのか。

5. ちいさな あなは なんの ために ある?

5. 小さな送り穴は、読むタイミングの目印

5. 送り穴 ── 位置合わせとタイミング信号を兼ねる小さな穴

紙テープには、大きな あなの ほかに、もっと 小さな あなが ならんで います[6]。

この 小さな あなは「おくりあな」と いいます。テープを 一つずつ すすめる ための めじるしです。光で 読む きかいでは、「ここで 読んでね」という あいずにも なります[6]。

小さな あなが 見えた とき、大きな あなは、ちょうど 読める ところに 来ています。その ときに 読めば、よみまちがいが 少なく なります[6]。

小さな あなは、文字の あなの 数には かぞえません。文字の あなは、五つの ままです[6]。

紙テープには、データ用の穴より小さな穴が一列に並んでいます。送り穴(スプロケットホール)といい、中心はデータ穴と同じ位置にそろっています[6]。

送り穴は、テープを送る歯車に引っかけて、位置を合わせるために使われました。さらに、光で穴を読む機械では、「データ穴が読める位置まで来た」という合図、つまりタイミング信号にもなりました[6]。

送り穴の列は、文字の符号には数えません。5つ穴の符号のデータ穴は、5つのままです[6]。

では、うっかり穴が1つ余ったり、抜けたりしたら、どうなるでしょうか。

紙テープには、データ穴より小さな送り穴(スプロケットホール)の列があり、中心はデータ穴と同じ位置にそろっている[6]。スプロケットとは、歯車の歯に引っかけて送る、という意味だ。もとの役目はテープを機械で送るときの位置合わせだが、光学式の読み取り機では、送り穴を検出した時点でデータ穴が読める位置にあるという、タイミング信号としても働いた[6]。

送り穴は符号の一部ではない。5ビット符号のデータ穴は5つで、送り穴はその数に含めない[6]。これで機械が「いつ読むか」は決まる。残る課題は、読んだ穴が正しいかどうかである。

6. まちがいに 気づく あなって、なに?

6. 間違いを見張る穴と、7ビットのASCII

6. パリティ、7ビットのASCII ── 穴を足して誤りに気づく

あなが 一つ ぬけたら、ちがう 文字に なって しまいます。それに 気づく ために、あなを 一つ 足す くふうが あります。「パリティ」と いいます。

やりかたは かんたんです。その 行の、もとの あなと 足した あなを 合わせた 数が、いつも 2、4、6…と ペアに なるよう、足りない ときだけ 一つ あなを 足します。読むとき、合わせた 数が ペアに ならなければ、「どこかが まちがって いる」と わかります[6]。

ただし、気づく だけで、直す ことは できません。二か所 まちがうと、数が また ペアに なって、気づけない ことも あります。

のちに、アスキーという ふごうが 決まりました。1963ねんの ことです。あなは 七つで、128とおり つくれます。紙テープは 八つあなの ものも あり、あまった 一つを パリティに 使えました[7]。

穴が1つ抜けたり余ったりすると、まったく別の文字になります。そこで、穴を1つ足して見張る方法がありました。パリティです[6]。

偶数パリティなら、データ穴とパリティ穴を合わせた数が必ず偶数になるように、足りない行にだけ穴を1つ足します。読み取り機が奇数個の穴を読んだら、どこかが間違っていると分かります[6]。ただし、分かるのは「どこかおかしい」までで、直すことはできません。2か所が間違えると、穴の数が偶数のままになり、見逃すこともあります。

ASCIIは0〜127を7ビットで表す符号で、1963年にASA X3.4-1963として最初の版が出ました。2の7乗は128です。7ビットにしたのは、通信にかかる費用を抑えるためと説明されることがあります。一方で、当時の紙テープは1か所に8ビット記録できたので、余った1ビットをパリティに使えました[7]。

最初に見たDELは、この7つ穴が全部あいた並びです。ASCIIの紙テープでは、穴を消せないので、全部あけた文字を重ねて「無視」の印にしました。

この紙テープは、のちに数値制御(NC)の工作機械にも使われました。プログラムが紙テープに記録されていたのです。64文字のEIA-244というテープ規格は今は廃れ、ASCIIが標準です。紙テープ時代の名残として、一部のCNCでは、プログラムの大きさを「フィート」「メートル」で表すことがあります[9]。

誤りへの対策がパリティである。偶数パリティは、各行のデータ穴とパリティ穴を合わせた数が偶数になるよう1列を足す方式で、読み取りで奇数個を検出したら、どこかが誤っていると分かる[6]。限界もある。2か所が同時に誤ると合計が偶数のままになり、見逃す場合があり、どの穴が誤りかも分からないため、直すことはできない。

ASCIIは0〜127を7ビットで表す符号で、ASA X3.4-1963として最初の版が1963年に出た[7]。7ビットが選ばれたのは、データ送信の費用を抑えるためとされ、当時の紙テープは1か所に8ビットを記録できたので、余った1ビットをパリティに使えた[7]。前者は選択の理由、後者はその結果できた余裕であり、因果を一続きにしてよいかは資料から断定できない。ここでは、7ビット(2の7乗=128通り)にパリティの穴が1つ加わると、8つ穴のテープに収まる、とだけ読む。

冒頭のDEL(1111111)は、この7ビットの全部が1、つまり全部の穴があいた並びである。穴は戻せないので、全部あけた文字を重ねて「無視する文字」にした。パリティが誤りに気づく仕組みなのに対し、DELは誤りを読み飛ばす印であり、役目が違う。

数値制御(NC)の工作機械のプログラムも、初期は紙テープに記録された。64文字のEIA-244テープ規格は廃れ、現在はASCIIが標準である。紙テープ時代の名残として、一部のCNCでは、プログラムの大きさを「フィート」「メートル」で表すことがある[9]。穴の数の工夫は、機械の世界に名残を残している。

7. かみに まるを かいて、かぞえて みよう

7. 紙の上で、穴を数えて確かめる

7. 手元で確かめられること

紙と えんぴつで、紙テープごっこが できます。はさみは つかいません。

まず、一行に まるを 五つ かきます。あなの ある ところは ぬりつぶし、ない ところは 白の ままです。ちがう ならびを かいて いくと、ぜんぶで 32とおりに なるはずです。

つぎに、六つ目の まるを 足して、ぬりつぶした まるの 数が ペアに なるように します。ともだちに 一か所だけ ぬりかえて もらい、数が ペアに ならなければ、「どこかが かわった」と わかります。

紙と鉛筆で、紙テープごっこができます。はさみやパンチは使いません。

まず、1行に丸を5つ描き、穴のところを黒く塗ります。違う並びを書き出して数えると、32通りになるはずです。次に、6つ目の丸を足して、黒い丸の合計が偶数になるようにします。これが偶数パリティです。

家の人や友だちに、1か所だけ黒と白を入れ替えてもらいましょう。奇数になれば、「どこかが変わった」と気づけます。2か所入れ替えると、偶数パリティだけでは変化に気づけない場合があることも、試せます。

現物の紙テープは、博物館などで見られることがあります。送り穴がどこか、探してみるのも面白いでしょう。

紙と鉛筆で、穴を数えてみよう。まず、○を横に5つ描き、穴のところを黒く塗って、違う並びを書き出す。5つなら32通りになるはずだ。6つ・7つ・8つに増やしても、並びの数が倍々になる(64・128・256)ことを確かめられる。

次に、5つの並びの右に6つ目の○を足し、黒の合計が偶数になるようにする。友だちに1か所だけ黒と白を入れ替えてもらうと、合計が奇数になり、「どこかが変わった」と気づける。2か所を入れ替えると、偶数パリティだけでは変化に気づけない場合がある。どの並びで気づけるかを試してみよう[6]。

最後に、7つ穴を全部黒く塗った1行(DEL)を、書き間違えた行の上に重ねる場面を想像してみよう。この印は「そこは読み飛ばす」という意味で、パリティの合計とは別の役目だ。

しらべた もとの じょうほう

参考にした情報源

参考にした情報源と、その使い方

紙テープの穴、5ビット符号、切り替え、頻度による設計、送り穴、パリティ、ASCIIは、次の資料による。主な資料は英語版の百科事典や博物館のページで、年号に資料ごとのぶれがあるものは「とされる」と書いた。

  1. コトバンク「紙テープ」(ブリタニカ国際大百科事典) https://kotobank.jp/word/%E7%B4%99%E3%83%86%E3%83%BC%E3%83%97-1 (穴の有無で1ビットを記録する媒体)
  2. Wikipedia「Wheatstone system」 https://en.wikipedia.org/wiki/Wheatstone_system (電信での紙テープの使い方・穿孔機・モールスの穴の配置)
  3. Wikipedia「Baudot code」 https://en.wikipedia.org/wiki/Baudot_code (5ビット符号・文字側と数字側の切り替え・ITA2)
  4. Science Museum Group「Murray keyboard perforator」 https://collection.sciencemuseumgroup.org.uk/objects/co33634/murray-keyboard-perforator-model-no-5-pm-1914-1916 (キーボード穿孔機・打鍵の速さ)
  5. Wikipedia「Teleprinter」 https://en.wikipedia.org/wiki/Teleprinter (中継所での再穿孔と読み取り)
  6. ICL CES「Reading Punched Paper Tape」 https://iclces.uk/articles/reading_punched_paper_tape.html (送り穴のタイミング信号・パリティ)
  7. Wikipedia「ASCII」 https://en.wikipedia.org/wiki/ASCII (7ビットの選択・DELの使い方)
  8. Wikipedia「Punched tape」 https://en.wikipedia.org/wiki/Punched_tape (穴の列数・テープ幅・チャッド)
  9. EMC Handbook (LinuxCNC)「The 64-character EIA-244」 https://emc.sourceforge.net/Handbook/node45.html (NC工作機械のテープ規格とASCII)

なおした ところ

更新履歴

更新履歴(改版の記録)

  •  初版を公開。

このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。