戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2019年 春期 午前201


問題文

0以上255以下の整数に対して、 と定義する。と等しい式はどれか。ここで、 AND 及び OR は、それぞれを2進数表現にして、桁ごとの論理積及び論理和をとったものとする。

選択肢

(n+1) AND 255(正解)
(n+1) AND 256
(n+1) OR 255
(n+1) OR 256

0以上255以下の整数のnext関数の論理演算による表現【午前2 解説】

要点まとめ

  • 結論:を255でビットANDした式、すなわちと等しいです。
  • 根拠:が255のときですが、255は8ビットの全ビット1()なのでAND演算で256は0に戻ります。
  • 差がつくポイント:ビット演算のマスクとして255()を使うことで、0〜255の範囲に自然に循環することを理解できるかが鍵です。

正解の理由

選択肢アのは、の下位8ビットだけを取り出す操作です。
  • のとき、は255以下なのでそのまま値が返ります。
  • のとき、は2進数でとなり、下位8ビットはすべて0なので結果は0になります。
    これが問題文の定義と完全に一致します。

よくある誤解

  • 256でANDすると常に0になるため意味がありません。
  • OR演算はビットを立てる操作なので、の循環性を表現できません。

解法ステップ

  1. 問題の関数定義を理解する:は0〜255の範囲で1ずつ増加し、255の次は0に戻る。
  2. 2進数での表現を考える:255は8ビットすべて1の数値。
  3. の値が256になる場合を考慮し、下位8ビットだけを取り出す方法を検討。
  4. AND演算で255をマスクすることで、下位8ビットを抽出できることを確認。
  5. 選択肢の中でこの条件を満たすのはのみ。

選択肢別の誤答解説

  • イ: は256のビット位置のみを抽出するため、が256のときだけ1、それ以外は0となり不適。
  • ウ: は常に255以上の値になり、の定義と異なる。
  • エ: は256のビットを常に立てるため、範囲外の値を返し誤り。

補足コラム

ビット演算のANDはマスク処理に使われ、特定のビットだけを抽出するのに便利です。255は8ビットすべて1のため、8ビットの範囲内で値を制限するマスクとしてよく使われます。これにより、オーバーフロー時の循環処理を簡潔に表現できます。

FAQ

Q: なぜ255を使うのですか?
A: 255は8ビットすべて1の2進数で、AND演算で下位8ビットだけを抽出できるため、0〜255の範囲に値を制限できます。
Q: OR演算ではなぜダメなのですか?
A: OR演算はビットを立てる操作なので、値を増やす・循環させる処理には向かず、範囲外の値を返すことがあります。

関連キーワード: ビット演算、マスク処理、論理積、循環カウンタ、8ビット制限
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について