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