(10)できるだけ少ない知識で解きたい人用「レジスタに正の整数xを設定した後,"レジスタの値を2ビット左にシフトして,xを加える"操作を行うと,レジスタの値はxの何倍になるか」

#基本情報技術者試験 #平成28年 #春期 #問1 #シフト #ビット #2進数

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

レジスタって何よ?とかは考えない。
左に1ビットシフトしたら2倍、2ビットシフトしたら4倍になる。その4倍になったものに、元の値を足し算するので5倍になる。

念のため正の整数xを勝手に決めて考える。その時「あふれ(オーバーフロー)は発生しない」と書いてあるので、シフトしても1がはみ出ないような値にしておくこと。
 00000011 <--- 勝手に決めたx(10進数の3)
 00001100 <--- 2ビットシフトした(10進数の12 ・・・4倍になった)
 00001111 <--- xを足した(10進数の15・・・5倍になった) 
   

この記事が気に入ったらサポートをしてみませんか?