IPA過去問ドリル

令和5年度 春期 応用情報技術者試験 午前 問1

テクノロジ/基礎理論

0 以上 255 以下の整数 n に対して, next(n) = n+1(0 ≦ n < 255 のとき) next(n) = 0(n = 255 のとき) と定義する。next(n) と等しい式はどれか。ここで,x AND y 及び x OR y は,それぞれ x と y を 2 進数表現にして,桁ごとの論理積及び論理和をとったものとする。

出典:令和5年度 春期 応用情報技術者試験 午前 問1

正解:ア

解説

255 は 2 進数で 11111111(8 ビット全て 1)です。n が 0〜254 のとき n+1 は 255 以下なので,(n+1) AND 255 は n+1 のまま変わりません。n=255 のとき n+1=256 は 2 進数で 100000000 となり,下位 8 ビットは全て 0 なので (n+1) AND 255=0 になります。よって next(n) と一致するのは (n+1) AND 255 です。

選択肢ごとの解説

  • 正しい。0 ≦ n < 255 では (n+1) AND 255=n+1,n=255 では 256 AND 255=0 となり,next(n) の定義と一致します。
  • 誤り。256 は 100000000 なので,(n+1) AND 256 は n+1 が 256 のときだけ 256 になり,それ以外は 0 になってしまいます。
  • 誤り。OR 255 は下位 8 ビットを全て 1 にするため,結果は常に 255 以上になり,n+1 を保存できません。
  • 誤り。OR 256 は 9 ビット目を 1 にするため,結果は常に 256 以上になり,next(n) の値域(0〜255)を超えます。
応用情報技術者の過去問を演習モードで解く