数値を2進数で格納するレジスタがある。このレジスタに正の整数xを設定した後、”レジスタの値を2ビット左にシフトして、xを加える”操作を行うと、レジスタの値はxの何倍になるか。ここで、シフトによるあふれ (オーバーフロー) は、発生しないものとする。
| ア | 3 |
| イ | 4 |
| ウ | 5 |
| エ | 6 |
1 ビット左シフトするごとに 2 倍になるので,x を 2 ビット左シフトしたものに x を加えると,x×2×2+x=5x→ 5 倍になる。よってウが正解である。
下記より、(3)10から(15)10になる(5倍)ことが分かる。
| (11)2 | → | (1100)2 |
| (3)10 | → | (12)10 |
| (12)10+(3)10 | = | (15)10 |