SC情報処理安全確保支援士試験 午前Ⅰ

令和5年度春期 情報処理安全確保支援士 午前Ⅰ 問1

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

9以上255以下の整数n に対して、

選択肢

  1. ア
    n十1 (9ミ=nぐ255)
  2. イ
    nekt(n) = 19 (m=255)
  3. ウ
    と定義する。next(n) と等しい式はどれか。ここで、 x AND y及び x OR y は、 それぞれxとy を2進数表現にして、 桁ごとの論理積及び論理和をとったものとする。
  4. エ
    (m+1) AND 255イ (n+1) AND 256ウ (m+1) 0R 255エ (n+1) 0R 256
解き方のヒントを見る

8ビットで255に1を足すとどうなる?

8ビットの整数は、0〜255までしか入らない小さな箱だと考えよう。255は箱がパンパンの状態なので、そこに1を足すと桁あふれが起きて、下位8ビットだけを見ると0に戻るよ。これは、`n+1` の結果に `255` を AND して、8ビットからはみ出した上位ビットを切り捨てる式と同じ考え方だよ。

この問題で問われていること

8ビットの範囲からはみ出した桁あふれを、ビット演算でどう表せるかを理解しよう。

8-bit Wraparound

masking with `255 = 11111111₂` keeps only lower 8 bits

255 + 1 = 1 00000000₂\nAND 11111111₂ -> 00000000₂

確認ポイント

  • 256 で AND しても下位 8 ビットは残せない。
  • OR では桁あふれ表現にならない。
  • 下位 8 ビット保持と考える。
正解と解説を見る

正解

ア

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア(正解)

これは正解の「(n+1) AND 255」だよ。255は2進数で11111111なので、ANDすると下8桁だけを残すフィルターみたいに働くんだ。0〜254なら普通に1増えて、255+1=256は2進数で100000000だけど、下8桁だけ見ると00000000、つまり0になるよ。時計が23時の次に0時へ戻るのと同じだね。

選択肢イ

これは「(n+1) AND 256」だよ。256は2進数で100000000なので、ANDすると256の位だけを見ることになるんだ。入場ゲートが「256番の札を持っているか」だけ確認して、ほかの番号を全部無視する感じだよ。nが0〜254のときは多くが0になってしまい、1ずつ増えるnext(n)とは合わないよ。

選択肢ウ

これは「(n+1) OR 255」だよ。ORは、255つまり2進数の11111111をかぶせると、下8桁が全部1になってしまうんだ。スタンプで全部のマスを黒く塗る感じだね。だから多くの場合は255になり、n=255なら511になって、255の次を0に戻すnext(n)とは違うよ。

選択肢エ

これは「(n+1) OR 256」だよ。256は2進数で100000000なので、ORすると256の位が必ず1になるんだ。つまり、どの数にも「256円追加」の札を貼るようなもので、結果は必ず256以上になりやすいよ。next(n)は0〜255の範囲を回る仕組みなので不正解だよ。

出典:独立行政法人 情報処理推進機構(IPA)令和5年度春期 情報処理安全確保支援士試験 午前Ⅰ 問1(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針