第22章 文字とは

 文字列を今まで使ってきましたが、コンピューターは文字をどのように扱っているのでしょうか。

 今回はそういうことを話していきます。


 今回の要点です。


 では、いってみましょう。


 この文章もそうですが、コンピューターは文字も扱います。では、どう扱っているのでしょうか。

 コンピューターに記憶できるのは数値だけです。グラフィックもどの点がどの色かというのを記録していて、その色の情報も数値化されています。文字も何らかの形で数値化されているはずです。

 このとき、文字の形などで扱おうものなら、データ量が多すぎて使いものになりません。

 そこで、文字に通し番号を付けて、それで扱うようにしています。これならデータ量も少なくて済みます。

 では、文字にふられている番号を表示してみましょう。その番号は文字に ' ' を付けることで得られます。

プログラム実行結果
// 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 も存在します。

 他にもまだあるかもしれませんが、とにかく、文字を通し番号で扱っているというのは全部に共通しています


 次回は文字列について話します。文字列というのは、その名の通り文字の羅列のことです。この文なんかもそうですね。

 では、今回の要点です。


 では、さようなら。


第21章 ビットとバイト | 第23章 文字列の扱い方

Last update was done on 2000.6.14

この講座の著作権はロベールが保有しています