lパソコン CPUが使っている文字 '96. 7. 2  
l.お知らせ 内容 LINK FILE   HTML Win PC Unix MS-DOS C C++ Mfc Java 
.CPU_  CPUが使う文字  CPUのノート  Basicを使う  OS 

これはCPUが使っている文字の話です。

RAM, ビットとバイト, 2進法等のきまり


CPUが使う文字
CPUが使っているノートにはどのようなことが書いてあるのか、のぞいて見ます。

RAMというノートは、電気を溜ることができるコンデンサー(キャパシタ)がたくさんの集まって作られています。キャパシタと言うのは、溜ることができるものという意味です。

人間は電気を見ることができませんから、電気が溜まっているかどうかを、数字の1と0で表わすことにしています。この「1と0」が何個あるかということ、つまりキャパシタの数は、ビット(Bit)と言う単位で数えます。例えば、1010 は4Bitです。
4Bit,8Bit,16Bit,32Bit などにまとめて使われることが多いのですが、8Bit にまとめて使われることが最も多いので、8Bit のまとまりを バイト(Byt)という単位で表わすことになっています。ですから、8Bitは1Bytで、16Bitは2Bytです。

しかし、1と0の集まりだけでは何の意味もありませんから、これを数や文字に対応させるために、2進法や、アスキーコードなどの「きまり」が作られました。

数を表わす「きまり」は、一定の規則にしたがって作られています。でたらめなパターンを対応させても数を表わすことはできますが、計算をする場合に困ってしまうからです。
0は0で表わします。
1は1で表わします。
2は桁上げをして 10 と表わします。
以下同様に、11 100 101 110 111 1000 1001 ... のように表わしていきます。
このようなきまりを2進法と言います。→説明
2進法で表わされた数は、2進符号(バイナリ・コード)と言います。
※ 十進法では、0から9までは1桁ですが、10を表わすためには桁上げをして、数が十倍になる毎に桁数が増えます。2進法では、数が2倍になる毎に桁(Bit)数が増えます。
※ 2進法の他に、0から9までを4Bitの「2進法」で表わし、10になったら桁上げをする「2進化十進法(BCDコード)」というきまりもあります。また、隣り合った数の同じ桁の0と1が同じにならないようにして、コンピュータの計算ミスを防ぐように考えられたコードも有ります。

2進法で数を表わすことは出来るようになりましたが、2進法で表わされた大きな数は人間には分かりにくいので、4Bit毎に区切って、16進法で表わす方法がよく使われます。
備考(16進法)
十進法では 0〜9 を1桁で表わしますが、16進法では 0〜15 までを1桁で表わします。10〜15 を1桁で表わすためには、A〜F という「数字」を使い、9の次は A B C  ... F と数えます。
F の次は、桁上がりして 10 になります。
2進法も十進法もそうですが、数を表わす方法がこのように決められたのです。

以下に、十進法、2進法、16進法、および BCDコードの例を示します。

     10法        2進法       16進法        BCDコード       アスキーコードでの意味
        0             0            0             0         (文章の最後)
        1             1            1             1
        2            10            2            10
        3            11            3            11

        9          1001            9          1001         (タブ) ...普通はスペース8個分
      1 0          1010            A        1 0000         (次の行へ)
      1 1          1011            B        1 0001

      1 5          1111            F        1 0101
      1 6         10000          1 0        1 0110
      1 7         10001          1 1        1 0111

      1 9         10011          1 3        1 1001
      2 0         10100          1 4       10 0000
      2 1         10101          1 5       10 0001                 

      3 1         11111          1 F       11 0001         (カーソル・キーの ↓)
      3 2        100000          2 0       11 0010         (スペース)...これ以後が文字です。

      6 5       1000001          4 1      110 0001         (文字の A )
※ 数を表わす記号の各桁の1が表わす数はウエイトと言います。例えば十進法の2桁目のウエイトは 10です。十の位には 10の重みがあるという意味です。

2進法で 16を表わすと 10000ですが、BCDコードで 10を表わしたものも 10000で同じになります。
また、2進法で 16を表わした 1000001は、次に述べるアスキーコードで文字の A を表わしたものと同じです。これは区別する必要があります。
そのためには、数や文字をパソコンのノートに書き込む場合に、それを表わす記号といっしょに、記号の種類も指定します。

アスキーコードは、8Bit(1Byt)でひとつの文字を表わす「きまり」です。
たとえば、01000001 は、文字の A を表わすことに決められています。 アスキーコードは、次に述べる2進法の順番に、A,B,C...のように文字が対応しています。このようになっていると、文字を五十音順に並べ替えをしたりする場合に便利なのですが、文字を表わすだけだったら、でたらめに対応させてもよかったのです。
漢字とひらがなは種類が多いので、16Bit(2Byt)でひとつの文字を表わします。表わしかたの「きまり」には、JISコードと、シフトJISコードが有ります。
パソコンでは普通、シフトJISコードが使われます。しかし、インターネットなどではJISコードが使われるので、両方使えるようになっています。
16Bit の始めの 8Bit は、アスキーコードで使っていないパターンを利用しているので、両方のコードが混ざってしまうことはありません。
また、16Bitで表わすことができるパターンは漢字の種類よりもずっと多いので、JISコードと、シフトJISコードが混ざってしまうこともありません。つまり、ひとつの漢字には、JISコードと、シフトJISコードの2つのパターンが存在します。
1Byt(8Bit)で表わしたものは1バイト・コード、2Bytで表わしたものは2バイト・コードと言います。

数と文字を表わす「きまり」について述べましたが、このほかにもマイナスの数を表わすきまり、小数を表わすきまり、時刻を表わすきまり、ノートの位置を表わすきまりなどがあります。
ワープロや計算表などのアプリケーションを使っている場合には、人間が入力した文字や数字をワープロや計算表などが処理してくれますが、自分でプログラムを作る場合には区別してやる必要があります。
VisualBasic でプログラムする場合の例を示します。
          PRINT 1+2          ..... 1+2 の計算結果をプリント(表示)します。
          PRINT "1+2"        ..... 1+2 を文字としてそのままプリントします。
1行目の1と2は、1Bytのバイナリ・コードに変換された後に計算されます。
2行目の1と2は、1Bytのアスキー・コードに変換された後に表示されます。
数字をそのまま書けばバイナリー・コードに変換し、"" で囲むとアスキーコードに変換するのは Visual Basic の仕事の一つですし、変換してからそれを区別して扱うのも VisualBasic の仕事の一つです。
 
プログラムを作る場合には、パソコンが区別できるような方法でデータを入力してやればよいわけです。
ほとんどの場合、きまりの内容を詳しく知っている必要はありません。種類を指定する方法を知っていれば、パソコンが勝手に処理してくれるからです。

T   ◆◆◆◆◆ ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆


  mtoga@sannet.ne.jp   登録日 '96. 6.15
URL : http://www.page.sannet.ne.jp/mtoga/index.html