本文へ移動

基本情報技術者試験 · 学習ガイド

2009年度 春期 午前の問題・解答解説

旧制度の午前・午後と、2023年度以降の科目A・科目Bの公開問題を区別しています。現在の試験対策では現行シラバスと科目Bの形式を確認してください。公開問題は本試験の全出題を網羅する資料ではありません。

2009年度 春期 午前の概要
30:00

問題番号から選ぶ

2進数レジスタのシフト演算と加算

テクノロジ系 · 基数 / シフト演算 / レジスタ

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

解答・解説を表示

解答

ウ

解説

まず要点:2ビット左にシフトしてからxを加えると、値はxの5倍になります。左へ1ビット動かすと2倍、2ビットだと4倍になります。そこに元のxを足すので、4x+xで5倍になります。

解き方

  1. 正の整数xを2ビット左にシフトすると、値は元の値の2^2倍、すなわち4xになる。
  2. シフト後の値4xに元の整数xを加えるため、4x + x = 5xとなり、xの5倍になる。
選択肢 ア不正解
3倍は、1ビットだけ左に動かして2倍にし、そこへ元のxを足したときの値です。
選択肢 イ不正解
4倍は、2ビット左に動かしただけの値で、そのあとのxの足し算が入っていません。
選択肢 ウ正解
2ビット左に動かすと4倍になり、さらにxを足すので5倍となり正しいです。
選択肢 エ不正解
6倍にするには、4倍に2倍を足すなど別の操作を組み合わせる必要があります。

覚えるポイント

  • 2進数の左nビットシフトは2^n倍、右nビットシフトは1/(2^n)倍になる。

間違えやすいところ

  • 2ビット左シフトを「2倍」と誤認してしまうミスに注意する(1ビットで2倍、2ビットで4倍)。

出題の前提:基本情報技術者試験 午前出題範囲(基数・シフト演算)

出典:IPA『2009年度 春期 午前』
公式問題冊子 p.3 ↗(www.ipa.go.jp)

2009年度 春期 午前

参照した公式資料

IPAが公開した2009年度 春期 午前の問題・解答資料です。