令和4年度 秋期 応用情報技術者試験 午前 問1

aaを正の整数とし, b=a2b = a^2とする。aaを2進数で表現するとnnビットであるとき, bbを2進数で表現すると最大で何ビットになるか。

解答・解説

正解: イ. 2n2n

aa を2進数で表現すると nn ビットであるとき、aa の取り得る値の範囲は以下のようになります。

2n−1≤a<2n 2^{n-1} \le a < 2^n

b=a2b = a^2 であるため、各辺を2乗して bb の取り得る値の範囲を求めます。

(2n−1)2≤a2<(2n)2 (2^{n-1})^2 \le a^2 < (2^n)^2
22n−2≤b<22n 2^{2n-2} \le b < 2^{2n}

この不等式から、bb の値は 22n2^{2n} より小さいため、整数の場合の最大値は 22n−12^{2n} - 1 となります。
2進数で表現したときの桁数(ビット数)は、値が 2k−12^k - 1 以下のときに最大 kk ビットとなります。したがって、bb を2進数で表現したときの最大のビット数は 2n2n となります。

各選択肢の解説

  • ア(n+1n+1): 誤り。これは aa を2倍(2a2a)したときの最大ビット数です。
  • イ(2n2n): 正解。上記計算の通り、bb の最大ビット数は 2n2n となります。
  • ウ(n2n^2): 誤り。元のビット数を2乗するのではなく、指数法則により 2×n2 \times n となるのが正しい計算です。
  • エ(2n2^n): 誤り。これは最大値の式の一部に関わる形ですが、ビット数そのものではありません。

Spineチーム