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

応用情報技術者 2023年 春期 午前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した式、すなわちア: (n+1) AND 255で表せます。
  • 根拠:255は8ビットすべてが1の2進数(11111111)で、AND演算により8ビット目以上の桁が切り捨てられます。
  • 差がつくポイント:255でANDすることで255を超えた値が0に戻る動作を正確に理解できるかが鍵です。

正解の理由

は0から255までの整数で、255を超えたら0に戻る循環構造です。
255は2進数で11111111なので、と255のAND演算は下位8ビットだけを取り出します。
これにより、のときの2進数は100000000ですが、AND 255で下位8ビットは0となり、を実現します。
したがって、ア: (n+1) AND 255の定義と完全に一致します。

よくある誤解

  • 256でANDすると256のビット位置がずれてしまい、0に戻る動作を表現できません。
  • OR演算はビットを立てる操作なので、の循環動作とは逆の結果になります。

解法ステップ

  1. の定義を確認し、255を超えたら0に戻ることを理解する。
  2. 255の2進数表現(11111111)を思い出す。
  3. と255のAND演算が下位8ビットを抽出し、256以上の値を0に戻すことを確認。
  4. 他の選択肢のANDやOR演算がこの動作を再現できないことを検証。
  5. 正解はと判断する。

選択肢別の誤答解説

  • ア: 正解。の下位8ビットを取り出し、255を超えたら0に戻る動作を実現。
  • イ: AND 256は256のビット位置だけを抽出し、の動作と合わない。
  • ウ: OR 255は常に255以上の値になり、0に戻る動作をしない。
  • エ: OR 256は256のビットを立てるため、の定義と異なる。

補足コラム

この問題は8ビットの循環カウンタの基本的な動作を理解する良い例です。
ビット演算ANDでマスクをかけることで、特定のビット幅に制限した値の範囲を表現できます。
この技術は組み込みシステムやハードウェア制御で頻繁に使われます。

FAQ

Q: なぜ255でANDすると0に戻るのですか?
A: 255は8ビットすべて1なので、9ビット目以上のビットは切り捨てられ、256(100000000)では下位8ビットが0になるためです。
Q: OR演算ではなぜを表せないのですか?
A: OR演算はビットを立てる操作なので、値が増加して0に戻る循環動作を表現できません。

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

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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