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 進数を表すことができます。