解答:ア
2進数において乗算と除算はシフト演算を用いておこなうことができる。シフト演算とは、2進数を左右にずらして演算をおこなうことである。
シフトの方法は以下の3種類がある。
この問題では、3倍する乗算のため、算術シフトで考える。算術シフトは以下の方法でシフトをおこなう。
例えば8ビットの2進数00000110を左に1ビットシフトすると、00001100となる。
シフト演算は、nをシフト回数をnとするとき、左にシフトすると、2n倍、右にシフトすると、2-n倍(1/2n)になる。
したがって、左に1回シフトすると、2倍、2回シフトすると4倍になる。では、3倍はどのようにすればよいのだろうか。
数値aを3倍するとき、3aと表すことができる。これを変形すると、以下のようになる。
3a=2a+a
つまり、数値を2倍したものと、その数値を加えたものが3倍である。よって、左に1回シフトしたものと数値を加えたものを解答群から見つければよい。解答群それぞれの数値の下位けたのゼロに注目すれば分かりやすい。ゼロの数がシフト回数である。
解答群のアは最下位のけたが0になっているので左に1回シフトしている。そして、シフト結果に数値を加えているので、数値を3倍している。