IPA過去問ドリル

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

テクノロジ/アルゴリズム

16ビットの2進数 n を16進数の各桁に分けて,下位の桁から順にスタックに格納するために,次の手順を4回繰り返す。a,b に入る適切な語句の組合せはどれか。ここで,XXXX16 は16進数 XXXX を表す。 〔手順〕 (1) a をxに代入する。 (2) xをスタックにプッシュする。 (3) nを b 論理シフトする。 (注:本サイトでは原問題の表を文字表記に変換しています)

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

正解:イ

解説

16ビットの2進数を16進数表記の各桁に変換するには,下位4ビットをマスクして取り出し(AND 000F),それをスタックに積んだ後,nを右へ4ビット論理シフトして次の4ビットを下位に持ってくる,という操作を4回繰り返します。上位4ビットをマスクするFFF0や,左シフトでは正しく桁を取り出せません。

選択肢ごとの解説

  • 誤り。bが左シフトになっており,次の4ビットが下位に来ないため正しく桁を取り出せません。
  • 正しい。a=n AND 000Fで下位4ビットを取り出し,b=右に4ビットシフトで次の桁を下位に送り込む,という組合せで正しく16進数の各桁を取り出せます。
  • 誤り。AND FFF0は下位4ビットを0にしてしまい,上位のビットだけが残るので目的のxの値が得られません。
  • 誤り。AND FFF0で下位4ビットを消してしまい,bが右シフトでも取り出したい桁の値になりません。
基本情報技術者の過去問を演習モードで解く