本文へ移動

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

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

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

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

問題番号から選ぶ

ビットシフト演算と加算による倍率計算

テクノロジ系 · 基数変換 / ビットシフト / 基底演算

2進数を保持するレジスタに正の整数 x を格納した状態から、レジスタの値を左に2ビットシフトし、その結果に元の x を加算した。オーバーフローが発生しない場合、最終的な値は x の何倍になるか。

解答・解説を表示

解答

ウ

解説

まず要点:2進数の値を左へnビット動かす(シフトする)と、桁あふれがない限り2のn乗倍になります。左に1ビット動かすと2倍、2ビット動かすと4倍です。そこへ元のxを足すので、4x+x=5xとなり5倍になります。

解き方

  1. 元の値xを左に2ビットシフトすると2の2乗で4倍になり、4xになります。
  2. シフト後の4xに元のxを足すと4x+x=5xとなり、xの5倍と分かります。
選択肢 ア不正解
左へ1ビットだけ動かしてxを足したとき(2x+x=3x)の倍率で、今回は当てはまりません。
選択肢 イ不正解
左へ2ビット動かしただけの4xの倍率で、xの足し算が入っていません。
選択肢 ウ正解
左へ2ビット動かして4倍にし、そこにxを足すと5xになるので正しいです。
選択肢 エ不正解
左へ2ビット動かした値にさらに2xを足したときの倍率で、誤りです。

覚えるポイント

  • 左シフトnビットは2のn乗倍、右シフトnビットは2のn乗分の1倍になる。

間違えやすいところ

  • シフトだけして終わりと勘違いし、4倍を選んでしまう間違いに注意します。

出題の前提:基本情報技術者試験シラバス(基礎理論:2進数のシフト演算)

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

2016年度 春期 午前

参照した公式資料

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