ざさいたま
アバウト ギャラリー コンピュータ その他 リンク集

バイナリとテキスト

良く聞く言葉であるが

 わかりきった話であるが、コラムの性質上どうしてもこのバイナリとテキストという概念を説明しておかないといけない。今回この重要キーワードを説明することにした。既に理解している方には甚だ退屈な話であるので、読み飛ばしてもらいたい。
 バイナリとテキストはコンピューターのファイル上、本質的な差は無い。ともに、0および1の集合として保存される。ではなぜバイナリとテキストを区別するのであろうか。バイナリは2つで出来ているという意味がある。つまり0と1の羅列であるわけだ。ここまでは理解に苦しくない。
 テキストは人が一般的なテキストエディタないしビュアーによって、簡単に読める状態にあるデータを指す。しかしこのテキストも0と1の集合によって保存されている。どう分けているのか理解にしがたいと思う。
 テキストデータは限定されたバイナリフォーマットと考えると理解しやすい。ASCIIコード1)で記述された文字データをテキストと呼んでいる。つまり、8bit全て使うことなく7bitの範囲で文字データをやりとりする規格なのである。なぜ7bitなのか。1byteは通常8bitであるが、コンピュータによっては1byteは7bitとして扱われるものもあるためである。
 しかし、上記の説明はまだ問題がある。我々日本人を含め欧州人でもこのASCIIコードだけでは文字としてデータをやりとりするには不十分であるからだ。8bit全て使いたい言語もあければ、8bitでは足りず16bit使わないと間に合わない言語もある。全世界の文字を共通のコードとして扱おう2)とすると32bit使わなくてはならない。

バイナリを考える

 そうするとますますバイナリとテキストの差が見えなくなる。テキストデータだけを検討してもものの本質は見えてこない。今度はバイナリデータも検討してみたい。バイナリデータは0と1の羅列であると述べた。バイナリデータは明確な区切りをもたない。一つのデータが1bitで終わればいいが、7bitでも、11bitでも終わってもかまわない。データの単位は8bit単位であったものが、途中から3bit単位になったり4bit単位になってもかまわない。テキストはデータの意味が明確に定まっているが、バイナリではプログラマの意志一つでデータの意味をその都度変更することができる。特別に決まった文字符号体型などは使っても使わなくてもかまわない。データの内容は文字を扱っても構わないし、画像や音声、純粋な数字を扱ってもよい。純粋に0と1の集合による配列であるに過ぎないのだ。
 したがって、テキストデータは、7ないし8のn倍bitのデータ長のもので、そのバイナリに対して文字データの集合として明確な意味づけが行われているもの。バイナリデータは上記のような限定はなく単純に0と1の集合と扱われるもの。テキストは限定されたバイナリデータと呼ぶことができるのである。
(小宮和寛)

注:
 1)英語文化でよく用いられ国際標準な文字規格。American National Standard for Information Systems Coded Character Setsの略称。7bitが基準になっている。
 2)この試みにUnicodeがある。当初16bitで国際標準な文字コード体系を計画したが、16bitでは不十分であることが発覚した。不十分であることは早くから指摘されていた。
  戻る
saitama web-framework (c) 2007-2012 thesaitama. All Rights Reserved.