文字列を今まで使ってきましたが、コンピューターは文字をどのように扱っているのでしょうか。
今回はそういうことを話していきます。
今回の要点です。
では、いってみましょう。
この文章もそうですが、コンピューターは文字も扱います。では、どう扱っているのでしょうか。
コンピューターに記憶できるのは数値だけです。グラフィックもどの点がどの色かというのを記録していて、その色の情報も数値化されています。文字も何らかの形で数値化されているはずです。
このとき、文字の形などで扱おうものなら、データ量が多すぎて使いものになりません。
そこで、文字に通し番号を付けて、それで扱うようにしています。これならデータ量も少なくて済みます。
では、文字にふられている番号を表示してみましょう。その番号は文字に ' ' を付けることで得られます。
プログラム | 実行結果 |
---|---|
// Char1.cpp #include <iostream.h> int main() { cout << "「0」にふられた番号は " << (int)(unsigned char)'0' << " です。" << endl; cout << "「あ」にふられた番号は " << 'あ' << " です。" << endl; return 0; } |
「0」にふられた番号は 48 です。 「あ」にふられた番号は 33440 です。 |
どうやら「0」には 48 が、「あ」には 33440 がふられているようです。
プログラム中に (int)(unsigned char) というややこしい型キャストがありますね。'0' は char 型で、もしかしたら負の値になってしまうかも知れないので、unsigned char にします。で、unsigned char は文字と認識されるのでこのままでは 0 と表示されてしまいます。そこで、int にして数値と認識させます。
まぁ、とにかくこうすれば正しい値が表示できるのです。
文字にふられている番号のことを文字コードと言います。
そのうち、半角文字にふられている番号は、ASCII(アスキー)コードと呼ばれます。
ASCII コードの大きさは1バイトです。つまり、0〜255までの数値になります。
一方、全角文字にふられている番号ですが、これにはいろいろな種類があります。JIS コード、シフト JIS コード、EUC コードです。Windows ではシフト JIS コードが使われています。
全角文字の大きさは2バイトです。また、JIS コードは少し特殊で、さらに全角文字の前後に3バイトずつ計6バイトの目印を要します。
半角カナはシフト JIS コードでは半角文字扱いですが、そのほかでは全角文字扱いになります。
また、半角、全角、両方をまとめ、さらに全世界の主要文字を網羅した国際文字コード UNICODE も存在します。
他にもまだあるかもしれませんが、とにかく、文字を通し番号で扱っているというのは全部に共通しています。
次回は文字列について話します。文字列というのは、その名の通り文字の羅列のことです。この文なんかもそうですね。
では、今回の要点です。
では、さようなら。
Last update was done on 2000.6.14
この講座の著作権はロベールが保有しています