aを正の整数とし,b=a2とする。aを2進数で表現するとnビットであるとき,bを2進数で表現すると高々何ビットになるか。
ア n+1
イ 2n
ウ n2
エ 2n
2進数の性質を問う問題。
「高々何ビット」というのは「最大で何ビット」と同じ意味である。
nビットの数字の最大値は2n-1であるから、aがnビットの時のbの最大値は(2n-1)2となる。
そこで、いくつかnの値を代入してbの最大値を確かめてみる。
- n = 1 ➡ bmax = (21-1)2 = 1(1ビット) ➡ ビット数n
- n = 2 ➡ bmax = (22-1)2 = 9(4ビット) ➡ ビット数2n
- n = 3 ➡ bmax = (23-1)2 = 49(6ビット) ➡ ビット数2n
- n = 4 ➡ bmax = (24-1)2 = 225(8ビット) ➡ ビット数2n
- n = 5 ➡ bmax = (25-1)2 =961(10ビット) ➡ ビット数2n
n=1からn=5まで代入してみたが、bは高々2nビットになりそうだとわかる。
b = (2n-1)2 = 22n – (2n+1+1) < 22n(2n+1ビットの最小値) であるから、2nより大きいビット数になることはない。
以上より、bは高々2nビットとなり、イが正解である。
スポンサーリンク
スポンサーリンク