本文へ移動

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

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

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

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

問題番号から選ぶ

基数変換とビット演算・シフト操作

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

16ビットの2進数 n を16進数の各桁に分け、下位の桁から順にスタックへ格納するために、次の手順を4回繰り返す。aとbに入る適切な字句の組合せはどれか。ここで、XXXX16 は16進数XXXXを表す。 〔手順〕 (1) [ a ] を x に代入する。 (2) x をスタックにプッシュする。 (3) n を [ b ] 論理シフトする。

解答・解説を表示

解答

イ

解説

まず要点:下位の桁から順に取り出すには、下位4ビットだけを残すマスク値との論理積(AND)で抜き出し、その後は右へ4ビット論理シフトします。16進数の1桁は2進数の4ビットに対応するためです。シフトの向きを逆にすると、次の下位桁を取り出せなくなります。

解き方

  1. 16進数の最下位1桁を抜き出すため、下位4ビットだけが1のマスク値 000F16 と n の論理積(n AND 000F16)を計算して x に入れます。
  2. 取り出した値をスタックに積んだあと、次の上位桁を下位4ビットの位置へ移すため、n を右に4ビット論理シフトします。
選択肢 ア不正解
左に4ビットシフトすると桁が上位へ動いてしまい、下位の桁を取り出せません。
選択肢 イ正解
下位4ビットを 000F16 との AND で取り出し、右に4ビットシフトして次の桁を下位へ送るため正しいです。
選択肢 ウ不正解
FFF016 との AND では最下位の桁が0になり、さらに左シフトするため誤りです。
選択肢 エ不正解
FFF016 との AND では最下位4ビットが消えてしまい、下位桁を取り出せません。

答えの内訳

空欄a:n AND 000F16
16進数の最下位1桁(下位4ビット)を取り出すには、下位4ビットが1で上位12ビットが0であるマスク値 000F16 と論理積(AND)をとります。
空欄b:右に4ビット
次の桁を下位4ビットの位置に移動させるためには、2進数 n 全体を右へ4ビット論理シフトする必要があります。

覚えるポイント

  • 16進数1桁は2進数4ビットに相当します。
  • 特定ビットの抽出にはAND(論理積)、ビットの桁送りにはシフト演算を使用します。

間違えやすいところ

  • 下位桁から処理するとき、右シフトと左シフトの向きを逆にしないよう注意してください。

出題の前提:平成25年度春期基本情報技術者試験午前問1出題条件

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

2013年度 春期 午前

参照した公式資料

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