平成21年度 春期 基本情報技術者試験 午前 問1
テクノロジ/基礎理論数値を2進数で格納するレジスタがある。このレジスタに正の整数xを設定した後,“レジスタの値を2ビット左にシフトして,xを加える”操作を行うと,レジスタの値はxの何倍になるか。ここで,あふれ(オーバフロー)は,発生しないものとする。
出典:平成21年度 春期 基本情報技術者試験 午前 問1
- ア3
- イ4
- ウ5
- エ6
正解:ウ
解説
レジスタを2ビット左にシフトすると値は4倍になります(2進数を1ビット左シフトするごとに2倍になるため)。その後にxを加えるので,結果はレジスタの元の値(x)の4倍にxを加えたことになり,4x+x=5xとなります。したがって,レジスタの値はxの5倍になります。
選択肢ごとの解説
- ア誤り。2ビット左シフトだけで4倍になるので,3倍という計算は誤りです。
- イ誤り。シフト後の4xにxを加えることを忘れた場合の値です。
- ウ正しい。2ビット左シフトで4x,そこにxを加えて4x+x=5xとなります。
- エ誤り。3ビット左シフト(8倍)にxを加えた場合などと混同した値です。