IPA過去問ドリル

平成21年度 春期 基本情報技術者試験 午前 問1

テクノロジ/基礎理論

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

出典:平成21年度 春期 基本情報技術者試験 午前 問1

正解:ウ

解説

レジスタを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を加えた場合などと混同した値です。
基本情報技術者の過去問を演習モードで解く