IPv4 アドレスは、2 進表記された 32 ビットの数字です。 しかし、人間が扱いやすくするために、通常は、この IPv4 アドレスを表す 2 進パターンをドット付き 10 進で表します。 そのためには、まず、32 ビットの 2 進パターンをバイト(8 ビット)ずつドットで区切ります。このそれぞれのかたまりをオクテットと呼びます。 なぜそのように呼ぶかというと、それぞれの 10 進数が 1 バイトまたは 8 ビットを表すからです。
2 進数アドレス:
11000000 10101000 00001010 00001010
をドット付き 10 進で表すと、次のようになります。
192.168.10.10
図 1 で、各ボタンを選択すると、32 ビットの 2 進数アドレスが、ドット付き 10 進オクテットでどのように表されるかを確認できます。
ところで、実際の 10 進数アドレスはどのような方法で決まるでしょうか。
2 進記数法
2 進記数法では、基数は 2 です。 したがって、桁が上がるごとに 2 を累乗する指数が増えます。 8 ビットの 2 進記数法では、各桁は次の量を表します。
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
128 64 32 16 8 4 2 1
2 を底値とする記数法では、0 と 1 の 2 つの数字しか使用しません。
バイトを 10 進数で解釈する場合、図 1 に示すように、数字が 1 の桁は量を表し、数字が 0 の桁は量を表しません。
10 進数 192 を 2 進数で表すと、図 2 のようになります。 各桁の 1 は、その値を合計に加算するという意味です。 0 は、その値を加算しないという意味です。 2 進数 11000000 には、2^7(10 進数 128)と 2^6(10 進数 64)の桁にそれぞれ 1 があります。 残りのビットはすべて 0 なので、対応する 10 進数は加算しません。 128 + 64 の結果は 192 で、これが 11000000 を 10 進数で表した値です。
さらに 2 つの例を示します。
例 1:オクテットがすべて 1 の場合:11111111
各桁の 1 は、その桁の値を合計に加算するという意味です。 すべて 1 ということは、すべての桁の値が合計に加算されるという意味で、オクテットのすべての 1 の値を合計すると 255 になります。
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
例 2:オクテットがすべて 0 の場合:00000000
各桁の 0 は、その桁の値を合計に加算しないという意味です。 すべての桁が 0 なので、合計は 0 です。
0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 0
1 と 0 の組み合わせによって、さまざまな 10 進数を表すことができます。