正答2
解説
正解は2です。
nビットで表せる正の整数の最大値から、その2乗が何ビットに収まるかを考える問題です。
nビットの数aは、2^(n−1)以上2^n未満の範囲にあります。
【計算】
aはnビットなので、a<2^nです。
両辺を2乗すると、b=a^2<2^n×2^n=2^(2n)です。
2^(2n)未満の数は、2進数で2nビットあれば表せます。
たとえばn=2でa=3(11)なら、b=9(1001)で4ビット=2nビットになります。
したがって、bは最大で2nビットです。
【選択肢別解説】
1:× n+1ビットでは足りません。
たとえばn=2、a=3のときb=9は4ビット必要で、3ビットを超えます。
2:○ b<2^(2n)なので2nビットに必ず収まり、a=2^n−1のように実際に2nビットになる例もあります。
3:× n^2ビットは過大です。
n=3ならn^2=9ですが、7^2=49は6ビットで表せます。
4:× 2^nビットも過大です。
2^nはビット数ではなく、nビットで表せる値の個数にあたります。
【ポイント】
掛け算の結果の桁数は、元の桁数の和以下になります。
nビット×mビットの積は最大でn+mビットと覚えておくと、乗算器の設計問題にも応用できます。