平成25年度春期 応用情報技術者試験 午前 問1
aを正の整数とし,b=a²とする。aを2進数で表現するとnビットであるとき,bを2進数で表現すると高々何ビットになるか。
- ア n+1
- イ 2n
- ウ n²
- エ 2ⁿ
解答・解説を見る
正解:イ
AI解説
aが2進数でnビットならば a<2ⁿ が成り立つ。両辺を2乗すると b=a²<(2ⁿ)²=2²ⁿ となり、bは2nビット以内で表現できる。実際、最大値a=2ⁿ−1のとき a²=2²ⁿ−2ⁿ⁺¹+1 は2²ⁿ未満なので、高々2nビットで足りる。よってイが正しい。「乗算はビット数が足し算される(n+n=2n)」と押さえる。 ア: n+1ビットは加算(a+a程度)でのビット増加であり、2乗では足りない。 イ: 正しい。a<2ⁿ の両辺を2乗して a²<2²ⁿ となるため、bは高々2nビットである。 ウ: n²はビット数を2乗した値であり、2進表現の桁数の増え方(指数の和)とは合わない。 エ: 2ⁿはaの値の上限に近い数であって、bのビット数ではない。 💡 2進数の乗算では「mビット×nビットの結果は高々m+nビット」が鉄則。10進数でも2桁×2桁は高々4桁になるのと同じ理屈で覚えられる。
出典:平成25年度 春期 応用情報技術者試験 午前 問1 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。