
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
IPv4アドレス(32ビット)とIPv6アドレス(128ビット)それぞれが表現できるアドレス数の比を求める問題。ビット数と表現可能な組合せ数(2のべき乗)の関係の理解が必要。
32ビットのIPv4アドレスと128ビットのIPv6アドレスについて、IPv6アドレスで表現できるアドレス数がIPv4アドレスで表現できるアドレス数の何倍になるかを求める問題。
① nビットで表せる数は2ⁿ通り。2ᵃ÷2ᵇ=2^(a−b)
② IPv4は8×4=32ビット、IPv6は16×8=128ビット → 2¹²⁸÷2³²=2⁹⁶
③ 2⁹⁶倍(④)
nビットで表現できる組合せの総数は2ⁿ通りである。IPv4アドレスは32ビットなので2³²通り、IPv6アドレスは128ビットなので2¹²⁸通りのアドレスを表現できる。したがってIPv6アドレスの表現数はIPv4アドレスの表現数の2¹²⁸÷2³²=2¹²⁸⁻³²=2⁹⁶倍となる。したがって④が正しい。
■ nビットで表せる数が2のn乗通りになる理由
1ビットは0か1の2通りです。2ビットなら2×2=4通り(00, 01, 10, 11)、3ビットなら2×2×2=8通りのように、ビットが1つ増えるごとに2倍になるので、nビットでは2のn乗通りです。
■ 累乗の割り算
同じ数の累乗どうしの割り算は、指数(右上の数)の引き算になります。2の128乗÷2の32乗=2の(128−32)乗=2の96乗です。
nビットで表現できる組合せの総数は2ⁿ通りであり、ビット数が異なる2つのアドレス体系の表現数の比を求める場合は、指数の差(ビット数の差)を計算して2の何乗倍かを求めればよい(2ᵃ/2ᵇ=2ᵃ⁻ᵇ)。
キーワード: IPv4、IPv6、アドレス数、情報・論理