3-5 シフト演算

令和6年6月修了試験  問1

数値を2進数で格納するレジスタがある。このレジスタに正の整数xを設定した後, "レジスタの値を2ビット左にシフトして,xを加える”操作を行うと,レジスタの値はxの何倍になるか。ここで,あふれ(オーバフロー)は,発生しないものとする。

解答 ウ

【頭の準備体操】
nビット左にシフトする ⇒ あふれが発生しない限り,元の数の2n倍になる。

xを2ビット左にシフトする。 ⇒ 22x=4x
xを加える。 ⇒ 4x+x=5x
よって,5倍。