日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2009年3月20日金曜日

文字列とはなにか? (1:文字コード)

<なぜ「string」?>
Melで、文字を扱う変数の型は「string」となっている。
よく考えると「string」は糸とか弦のこと、文字なら「character」となるのではないかと思う。

まぁ、文字が並んで糸状になった物だから「string」かと考えても見るが、自分で勝手に考えたことなので裏付けもなく、納得いかない。

辞書で調べてみると「string」と言う言葉を文字に対して使うのはコンピュータの分野のみ、要するにコンピューター用語だ。

BINARYによると「character string」(文字列)ということなので、これを短くして「string」にしたのだろうがそれでもコンピューター用語であることには変わりない。
要するに、他の分野では「character string」という用語は一般的には使わないと考えて良いだろう。


--------------------
<疑問>
一文字しか代入しないこともあるのに、なぜ「文字」型ではなく「文字列」型なのか?
なぜわざわざ「文字列」という用語まで作ったのか?
なぜ代入する値を” ”ダブル・クォーテーションで囲む必要があるか?

いろいろ調べてみるとC言語やVisualBasicにはchar型というものがあるらしい。
char型変数に代入されるのは、「文字列」ではなく「文字(一文字)」だ。

文字を扱う変数型には、「文字」型と「文字列」型という二種類があることはわかった。
でもなぜわざわざ区別して二つも存在するのか?? 謎は深まるばかりだ。

--------------------

<調査1>

まずそれを知るにはコンピュータ上での「文字」の扱われかたを思い出す必要があった。
コンピュータでは「文字」も「コンピュータで処理できる記号」として扱う必要がある。

「文字」自体は、人間の歴史の過程で、音声を記号化したものだが、
コンピュータで扱うには、電気または磁気信号に変換する必要があり、ハードウエアの設計上、
二進数の数字として扱わなくてはならない。ようするに「文字」をさらに記号化している。

「音声」→「文字」→「番号」→「二進数」 という具合に別の「記号(番号)」に変化している。

この「文字の記号化」は「文字のコード化」として知られている。

苦しんで覚えるC言語」というサイトの「[3]文字コード」にそれをわかりやすく説明してあった。

文字コードとは、文字に1対1で対応する番号をつけて表現する方法のことです。
例えば、半角の A には65番が割り当てられています。
つまり、コンピュータでは全ての文字は番号で表されており(以下略)


wikiによると、その歴史は電気通信の歴史とほぼ等しい。

ようするに、コンピュータ以前からアルファベットを記号化することは行われていた。
わざわざ特にコンピュータのために考え出されたことではないということだ。

ただ、コンピュータにあわせて、文字コードは整理されたと考えて良いだろう。

文字コードは、文字とそれに対応する二進数字の組からなる。
一文字に対し一つの二進数字が対応している。

その対応のさせ方は、いまでこそ統一されつつあるが、国、企業、時期によって違いがある。
Asciiコードとか、Unicodeとか呼ばれる物がその対応付けのバリエーションの一部だ。

そのため、必ずしも同じ「文字コード」が同じ「文字」を示すとは限らない。
それに食い違いが生じて表示されたものは「文字化け」と呼ばれる。

その対応付けは文字コードの一覧表で確認することが出来るが、
通常は二進数字ではわかりにくいので16進数に換算した表記がつかわれている。


ここまでで、コンピューター上では「文字」を「文字コード(二進数)」に変換して扱っていることをおさらいしてみた。

そこには同じ意味をもつ文字データが別の表現に記号化されている。

「文字」 <=> 「番号」

という具合に相互に対応しているのだ。



 

0 件のコメント:

コメントを投稿