正答1
解説
正解は1です。
2進数をシフトしたときの値の変化を使って、3倍を表す式を選ぶ問題です。
2進数の末尾に0を1個付けると左に1ビットシフトしたことになり、値は2倍になります。
0を2個付けると4倍、3個付けると8倍です。
元の数をxとすると、3倍は2x+xと分解できます。
【選択肢別解説】
1:○ 末尾に0を付けたb_1b_2…b_n0は2xです。
これに元の数xを足すと2x+x=3xとなり、3倍になります。
2:× 末尾に0を2個付けた数は4xなので、全体は4x−1です。
3倍とは一致しません。
3:× 末尾に0を3個付けた数は8xです。
3倍ではなく8倍になります。
4:× 末尾に1を付けた数は2x+1です。
3倍ではなく、2倍して1を足した値になります。
【ポイント】
2進数の左シフトは2倍、右シフトは2分の1(切捨て)に相当します。
3倍や5倍、10倍はシフトと加算の組合せで表せます。
例えば10倍は、8倍(3ビットシフト)と2倍(1ビットシフト)の和です。