応用情報技術者 2015年 秋期 午前2 問01
問題文
0以上255以下の整数に対して、
と定義する。と等しい式はどれか。ここで、 AND 及び OR は、それぞれとを2進数表現にして、桁ごとの論理積及び論理和をとったものとする。
選択肢
ア:(正解)
イ:
ウ:
エ:
0以上255以下の整数のnext関数【午前2 解説】
要点まとめ
- 結論:は「を256で剰余した値」であり、と等しいです。
- 根拠:255は2進数で8ビットすべてが1(11111111)で、AND演算で下位8ビットを抽出します。
- 差がつくポイント:ビット演算の意味と範囲(0〜255)を理解し、256(100000000)とのANDやORの結果を正確に把握することです。
正解の理由
選択肢アのは、の下位8ビットだけを取り出す操作です。
の範囲で、が256になるときは下位8ビットが0に戻るため、の定義と一致します。
他の選択肢はビット数や論理和・論理積の意味からの動作を再現できません。
の範囲で、が256になるときは下位8ビットが0に戻るため、の定義と一致します。
他の選択肢はビット数や論理和・論理積の意味からの動作を再現できません。
よくある誤解
- 256とのANDは0か256のどちらかになり、の連続性を保てません。
- OR演算はビットを立てるため、のような0に戻る動作を表現できません。
解法ステップ
- の定義を確認し、のとき0に戻ることを理解する。
- 255を2進数で11111111(8ビットすべて1)と認識する。
- は、の下位8ビットを抽出する操作と理解する。
- のとき、は2進数で100000000となり、下位8ビットは0になる。
- 他の選択肢のビット演算結果を検証し、の動作と合わないことを確認する。
- よって、がと等しいと判断する。
選択肢別の誤答解説
- イ: は256のビット(9ビット目)だけを抽出し、0か256のどちらかになるため不適。
- ウ: は常に下位8ビットが1になるため、の連続的な増加を表現できない。
- エ: は9ビット目を常に1にするため、の範囲外の値を返す。
補足コラム
ビット演算のANDは特定のビットをマスク(抽出)する際に使われます。
255は8ビットすべて1なので、AND 255は「下位8ビットだけを取り出す」操作です。
この性質を利用して、0〜255の範囲での循環カウンタを簡単に実装できます。
255は8ビットすべて1なので、AND 255は「下位8ビットだけを取り出す」操作です。
この性質を利用して、0〜255の範囲での循環カウンタを簡単に実装できます。
FAQ
Q: なぜは256で0に戻るのですか?
A: 256は2進数で100000000(9ビット目が1)で、下位8ビットはすべて0なのでAND 255で0になります。
A: 256は2進数で100000000(9ビット目が1)で、下位8ビットはすべて0なのでAND 255で0になります。
Q: OR演算はなぜの動作を表現できないのですか?
A: ORはビットを立てる操作なので、値が増加して0に戻るような循環動作を表現できません。
A: ORはビットを立てる操作なので、値が増加して0に戻るような循環動作を表現できません。
関連キーワード: ビット演算、マスク処理、循環カウンタ、AND演算、2進数

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

