修了試験 2017-01-22実施分 基本情報技術者試験 問2
非負の2進数b_1b_2…b_nを3倍にしたものはどれか。
正答1
解説
正解は1です。 2進数では、末尾に0を1つ付けると値が2倍になります。 これは左に1ビットシフトしたのと同じ操作です。 3倍は「2倍+1倍」と分解できるので、2倍した値に元の値を足せば求められます。 【計算】 元の値をxとします。 b_1b_2…b_n0は左に1ビットシフトした値で、2xです。 b_1b_2…b_n0+b_1b_2…b_nは、2x+x=3xになります。 【選択肢別解説】 1:○ 2倍した値(末尾に0を1つ付加)と元の値の和なので、ちょうど3倍になります。 2:× 末尾に0を2つ付けると4倍になるので、この式は4x-1を表します。 3倍ではありません。 3:× 末尾に0を3つ付けると8倍になります。 3倍ではなく8倍の値です。 4:× 末尾に1を付けると、2倍して1を足した2x+1になります。 3倍ではありません。 【ポイント】 2進数の左シフトはnビットで2^n倍、右シフトはnビットで2^nの1分の1になります。 3倍や5倍、10倍などは「シフトと加算」の組合せで計算できるという考え方が頻出です。まとめて解く
修了試験 2017-01-22実施分を通しで解く(80問)→