ビット、バイト、二進法
佐藤和美
ちょっと、以下の問題を考えてみよう。
問.
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