応用情報技術者試験 応用情報技術者試験 令和5年度春期 午前1: 0 以上 255 以下の整数 n に対して,next(n) を,n+1(0≦n<255),0(n=255)と定義する。next(n)と等しい式はどれか。ここで,

応用情報技術者試験 令和5年度春期 午前
Q 11 / 80
0 以上 255 以下の整数 n に対して,next(n) を,n+1(0≦n<255),0(n=255)と定義する。next(n)と等しい式はどれか。ここで,x AND y 及び x OR y は,それぞれ x と y を 2 進数表現にして,桁ごとの論理積及び論理和をとったものとする。
この問の正解率:46.61%(1,002件)

問題本文

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

選択肢

  • .(n+1) AND 255
  • .(n+1) AND 256
  • .(n+1) OR 255
  • .(n+1) OR 256

正解

. (n+1) AND 255

解説

8ビットで表せる 0〜255 の値を、255 の次に 0 へ戻す(循環させる)処理をビット演算で表現する問題です。255 は 2 進数で 11111111(下位8ビットがすべて1)なので、ある値と 255 の AND をとると下位8ビットだけが残り、9 ビット目以降は 0 で消えます。n=255 のとき n+1=256=100000000 ですが、これと 255 の AND は 00000000=0 となって正しく 0 に戻り、0〜254 のときは n+1 が 8 ビット内に収まるので値がそのまま残ります。したがって “(n+1) AND 255” が next(n) と一致します。

選択肢ごとの解説

  • .255=11111111 との AND は下位8ビットだけを残すマスク処理になり、n+1 が 256 になる瞬間だけ上位ビットが切り捨てられて 0 に戻るので、定義どおり正しく循環する。
  • .256=100000000 との AND は 9 ビット目だけを残すので、0〜255 の値(9 ビット目が 0)と AND をとると常に 0 になり、next(n) にならない。
  • .255 との OR は下位8ビットをすべて 1 にしてしまい、結果が常に 255 以上になるため誤り。
  • .256 との OR は 9 ビット目を 1 に立てるだけで下位の値はそのまま残り、255 を 0 に戻す働きがないので誤り。

応用情報技術者試験 令和5年度春期 午前過去問一覧へ戻る・問1