(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倍になった)
この記事が気に入ったらサポートをしてみませんか?