ドット付き 10 進表記で表される IPv4 アドレスとは異なり、IPv6 アドレスは 16 進数値で表されます。 使用される 16 進数については、Wireshark の [Packets Byte] ペインですでに確認しています。 Wireshark では、フレームやパケット内の 2 進数値は 16 進数値で表されます。 また、イーサネットのメディア アクセス制御(MAC; Media Access Control)アドレスも 16 進数値で表されます。
16 進数による番号付け
16 進(「Hex」)は、2 進数値を表すのに便利です。 10 を底とする記数法が 10 進で、2 を底とする記数法が 2 進であるのとまったく同様に、16 進は 16 を底とする記数法です。
16 を底とする記数法では、数字 0 ~ 9 と、文字 A ~ F を使用します。 図 1 に、10 進数値、2 進数値、および 16 進数値の対応関係を示します。 4 ビットの固有の組み合わせが 0000 ~ 1111 まで 16 通りあります。 1 つの 16 進数値でどの 4 ビットでも表すことができるため、16 桁の 16 進は最適な記数法です。
バイトについて
2 進数のグループを 8 ビット(1 バイト)で区切る場合、00000000 ~ 11111111 までの 2 進数は 16 進数の 00 ~ FF の範囲で表すことができます。 8 ビットをすべて表すために先行ゼロを表示できます。 たとえば、2 進数値 0000 1010 は 16 進数で表すと 0A です。
16 進数値の表現
注:文字 0 ~ 9 に関しては、それが 16 進数値または 10 進数値のどちらであるかを区別することが重要です。
16 進数は、通常は値の先頭に 0x が付加されたテキスト(0x73 など)か、下付き文字の 16 で表されます。 あまり一般的ではありませんが、値の後に H を続ける(73H など)場合もあります ただし、下付きテキストは、コマンド ラインやプログラミング環境では認識されないため、16 進数の技術的な表現では、先頭に「0x」(ゼロ x)が付けられます。 したがって、前述の例を 16 進数で表すと、それぞれ 0x0A と 0x73 になります。
16 進数への変換
10 進数と 16 進数の間で数字を変換するのは直接的ですが、16 で除算または乗算するのは回りくどいと言えなくもありません。
練習により、10 進数値および 16 進数値と一致する 2 進数のビット パターンを認識できるようになります。 図 2 に、選択された 8 ビット値に対応する、2 進数のビット パターンを示します。