ビット、バイト、二進法

佐藤和美

 ちょっと、以下の問題を考えてみよう。

問.
1メガのファイルを8メガ−ADSL(実質速度を4メガとして)で受信すると何秒で受信できるか。

この問題には言葉のトリックが含まれている。
答えは
1÷4=0.25[秒]
ではない。
「メガ」というのは「106 (=1000000)」という意味に過ぎない。「1メガのファイル」の「メガ」は「メガバイト(Mbyte)」であり、「実質速度4メガ」の「メガ」は「Mbps(M Bits Per Second)」である。バイトとビットなのだから、単純には比較できない。
比較には単位の換算が必要である。1バイトは8ビットなので、1Mbyteは8Mbitである。
答えは
8÷4=2[秒]
となる。

なお、bitは binary digit の意味である。


 IPアドレス(IPv4(=Internet Protocol Version 4))は4バイト(32ビット)である。一般的には人間にわかりやすいように、この4バイトを1バイト(8ビット)ずつドット( . )で区切って十進法で表わす。

こういう二進数のIPアドレスがあるとする。
11010011000011100000111100000101
これを一般的な書き方のIPアドレスにしてみよう。
まず8ビットでドットで区切る。
11010011.00001110.00001111.00000101
さらにこれを十進法に変換する。

n進数を十進数に変換するには、各桁の数と各桁の重み(nの桁数乗)の積の和を求める。二進数 11010011 を十進数に変換するのには以下の計算を行なう。

1 × 27(=128) = 128
1 × 26(=  64) =  64
0 × 25(=  32) =    0
1 × 24(=  16) =  16
0 × 23(=    8) =    0
0 × 22(=    4) =    0
1 × 21(=    2) =    2
1 × 20(=    1) =    1

128+64+16+2+1=211

これを他のバイトに対しても行なうと以下の十進数化したIPアドレスが求められる。

211.14.15.5

なお8ビットで表わせる最大の十進数は


128+64+32+16+8+4+2+1=255

255である。つまりIPアドレスに使われるのは0〜255の数字を四つ組合せたものになる。

IPアドレスのクラスの判定は、IPアドレスの最初の1バイトで行なえる。クラスは次のようになっている。

クラスA 0*******
クラスB 10******
クラスC 110*****
クラスD 1110****
クラスE 11110***

IPアドレス 211.14.15.5 の最初のバイトは 11010011 なので、クラスCだとわかる。

十進数をn進数に変換するには、十進数をnで割って、その余りを求めることを繰り返し、その余りを並べる。二進法では次のようになる。

2)211
2)105 … 1
2) 52 … 1
2) 26 … 0
2) 13 … 0
2)  6 … 1
2)  3 … 0
    1 … 1
この余りを下側から並べると 11010011 になる。

なおIPの新しいバージョンであるIPv6(Internet Protocol Version 6)ではIPアドレスは16バイト(128ビット)で表わされる。


 パソコンでの画面での色と色指定を考えてみる。 画面での色は赤・緑・青を混ぜて作る。一つの色を1バイト、赤・緑・青の組合せを3バイトで指定する。一つの色は十進数では0〜255で指定できるが、これは十六進数では00〜ffで表わせる。十六進数での最初の2文字を赤、次の2文字を緑、さらにその次を青の指定とすると、色の指定は000000〜ffffffで表わせる。表わせる色は3バイト(24ビット)、すなわち 224(1677万7216)色になる。JPEGでの色がこの1677万7216色である。
なお、GIFは256色、すなわち1バイトで表わせる色であり、情報量が少なくてすむ。

ホームページ(HTML)での色指定は次のようになる。
黒(全ての色がない)  Black   000000
赤           Red    ff0000
緑           Green   00ff00
青           Blue    0000ff
白(全ての色がある)  White   ffffff

十進法、二進法、十六進法の対応は以下のようになる。

十進法 二進法 十六進法
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F


二進数の四桁は十六進法の一桁に対応するので、二進数を十六進法に変換する場合は、二進数を四桁ずつ区切り、上の表で置き換えればよい。
十六進数を二進法に変換する場合はその逆になる。十六進法一桁を二進数四桁に置き換えればよい。

なお、文字に関してだが、半角は1バイトで、全角は2バイトである。


 210 は 1024 であり、1000 に近い。そのためITではk(キロ)で 1024 を表わす場合がある。この考えを発展させると、M(メガ)が 220(=1024 × 1024)、G(ギガ)が 230(=1024 × 1024 × 1024) になる。


 Excelで処理できる最大行数は65536である。この数値の意味を考えてみるのもいいだろう。

(2002・12・24)



Copyright(C) 2002 Satou Kazumi

BACK