応用情報技術者試験 令和4年秋 午前問1 解説付き過去問
問題
aを正の整数とし、b=a2とする。
aを2進数で表現するとnビットであるとき、bを2進数で表現すると最大で何ビットになるか。
正解
解説
この問題は、整数aを2進数でnビットで表現できるとき、b=a2を2進数で表現する際に必要な最大ビット数がいくつになるかを問うものです。
- aのビット数の意味
aがnビットで表現できるとは、aが2n−1以上、2n未満の整数であることを意味します。すなわち、最大値は 2n − 1 です。 - b=a2 の最大値
aの最大値は 2n − 1 なので、b=(2n − 1)2 となります。これを展開すると、
(2n − 1)2 = 22n − 2n+1 + 1 となり、bはおよそ 22n に近い値になります。
つまり、bは最大でも 2n ビット未満で表されますが、22n−1 は超えるため、2n−1ビットでは足りず、2nビットが必要になります。 - 具体例による確認
- a=3(2ビット) → b=9 → 4ビット
- a=7(3ビット) → b=49 → 6ビット
- a=15(4ビット) → b=225 → 8ビット
- a=31(5ビット) → b=961 → 10ビット
したがって、bを2進数で表現する際の最大ビット数は 2n です。