情報処理安全確保支援士試験 情報処理安全確保支援士試験 平成31年度春期 午前Ⅰ1: 0以上255以下の整数 n に対して, next(n) = n+1 (0≦n<255), 0 (n=255) と定義する。next(n) と等しい式はどれか。こ

情報処理安全確保支援士試験 平成31年度春期 午前Ⅰ
Q 11 / 30
0以上255以下の整数 n に対して, next(n) = n+1 (0≦n<255), 0 (n=255) と定義する。next(n) と等しい式はどれか。ここで,x AND y 及び x OR y は,それぞれ x と y を2進数表現にして,桁ごとの論理積及び論理和をとったものとする。

問題本文

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ビットの値を1ずつ進め、255の次は0に戻す処理(モジュロ256)を論理演算で表す問題。255は2進数で11111111。n+1がオーバフローして256(100000000)になっても、255とANDをとれば上位の桁が落ちて0になり、255未満ならn+1はそのまま残る。よってアが正解。実務でも下位nビットの抽出やリングバッファの折返しにビットマスクが使われる。

選択肢ごとの解説

  • .255(11111111)とのANDは下位8ビットだけ残すマスク。256は0、それ以外はn+1のまま得られ正解。
  • .256(100000000)とANDをとると9桁目だけ見るので、ほとんどの値が0になり成立しない。
  • .255とのORは下位8ビットを全て1にしてしまい、常に255になるため誤り。
  • .256とのORは9桁目を1に立てるだけで折返しにならず、n+1と一致しないため誤り。

情報処理安全確保支援士試験 平成31年度春期 午前Ⅰ過去問一覧へ戻る・問1