ビット、バイトについて

 コンピュータではデータを0と1の2つの数で扱いますが、情報の量を表す基本の
単位を「ビット」と言います。難しい言い方になってしまいましたが、具体的に考えれば、
簡単です。すなわち、1ビットとは0か1かの2通り、2ビットは00、01、10、11、の
4通りの情報量ということになります。 同様に、3ビットは000、001、010、011、
100、101、110、111、の8通りです。さて、それでは8ビットは何通りになるで
しょうか。8個の丸 ○○○○○○○○のそれぞれが、0か1かの2通りの値をとります。
2×2×・・・×2(2を8回掛けた)、すなわち、2の8乗=256通りということになります。
この8ビットを1バイトと言います(メモリーの量をあらわすのに、「バイト」がよく使われ
ます)。1バイトで0〜255(256通り)の数を表せることになります。

 余談になりますが、私が20年前(1980年頃)初めて手に入れたパソコンは、メモリー
が16キロバイト(1キロバイトが1000バイトですから、16000バイト)でした。上の話
から、これだけでも莫大な量の情報を扱える気がしますが、ちょっと大き目のプログラム
を作ると、メモリーがパンク状態になったものでした。今のパソコンはどうでしょう。64
メガバイトなんていうのが当たり前になっています。1メガバイト=1000キロバイト=
1000000バイト ですから、本当に気が遠くなるような話しです。

 さて、もう一度話を「ビット」に戻します。皆さんは、「16ビットマイコン」とか「32ビット
マイコン」という言い方に出会ったことがあると思います。「PIC」マイコンは「8ビット
マイコン」です。この「○ビットマイコン」という言い方は、一度にやりとりできる情報量を
意味します。つまり、「8ビットマイコン」は一度に8ビットの情報を扱える、ということに
なります。「16F84」のI/OポートにRB0〜RB7というのがありますが、これがまさしく
8ビット(1バイト)分であり、外部とのやりとりの際、一度に橋渡しのできる情報量という
ことになります。

 最後に、「ビット」と「バイト」の意味が分かったところで、二進法と十六進法の復習も
兼ねて、その間の関係についてふれておきましょう。二進法で四桁以下の数、0から
1111ですが、1111(2)=15(10)=F(16)ですから、二進法の四桁以下の数は十六
進法では一桁の数で表せます。ということは、二進法の五桁以上八桁以下の部分の
数も、十六進法では二桁目の数で表せるわけです。

       0(2)=0(16
          〜
    1111(2)=F(16)
   10000(2)=10(16) :この行から
          〜                  ↓
11110000(2)=F0(16)   :この行に注目
                     〜
11111111(2)=FF(16)

 すなわち、1バイトが十六進法の二桁の数に対応していることになります。さらに言えば、
1バイト(8ビット)の二進法表示の数を十六進法に直すには、上位の四桁と下位の四桁を、
それぞれ十六進法に直せば良いということになります。逆ももちろん言えます。二桁の
十六進法表示の数は、二桁目と一桁目をそれぞれ二進法に直してやれば良いのです。
例えば

10100101(2) は、1010(2)=A(16)、0101=5(16)ですから、
10100101(2)=A5(16)です。
CE(16)は、C(16)=1100(2)、E(16)=1110(2)ですから、
CE(16)=11001110(2)です。

                                               

                                    

inserted by FC2 system