数値を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 |