応用情報技術者 2023年 春期 午前2 問01
問題文
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がの定義と完全に一致します。
255は2進数で11111111なので、と255のAND演算は下位8ビットだけを取り出します。
これにより、のときの2進数は100000000ですが、AND 255で下位8ビットは0となり、を実現します。
したがって、ア: (n+1) AND 255がの定義と完全に一致します。
よくある誤解
- 256でANDすると256のビット位置がずれてしまい、0に戻る動作を表現できません。
- OR演算はビットを立てる操作なので、の循環動作とは逆の結果になります。
解法ステップ
- の定義を確認し、255を超えたら0に戻ることを理解する。
- 255の2進数表現(11111111)を思い出す。
- と255のAND演算が下位8ビットを抽出し、256以上の値を0に戻すことを確認。
- 他の選択肢のANDやOR演算がこの動作を再現できないことを検証。
- 正解はアと判断する。
選択肢別の誤答解説
- ア: 正解。の下位8ビットを取り出し、255を超えたら0に戻る動作を実現。
- イ: AND 256は256のビット位置だけを抽出し、の動作と合わない。
- ウ: OR 255は常に255以上の値になり、0に戻る動作をしない。
- エ: OR 256は256のビットを立てるため、の定義と異なる。
補足コラム
この問題は8ビットの循環カウンタの基本的な動作を理解する良い例です。
ビット演算ANDでマスクをかけることで、特定のビット幅に制限した値の範囲を表現できます。
この技術は組み込みシステムやハードウェア制御で頻繁に使われます。
ビット演算ANDでマスクをかけることで、特定のビット幅に制限した値の範囲を表現できます。
この技術は組み込みシステムやハードウェア制御で頻繁に使われます。
FAQ
Q: なぜ255でANDすると0に戻るのですか?
A: 255は8ビットすべて1なので、9ビット目以上のビットは切り捨てられ、256(100000000)では下位8ビットが0になるためです。
A: 255は8ビットすべて1なので、9ビット目以上のビットは切り捨てられ、256(100000000)では下位8ビットが0になるためです。
Q: OR演算ではなぜを表せないのですか?
A: OR演算はビットを立てる操作なので、値が増加して0に戻る循環動作を表現できません。
A: OR演算はビットを立てる操作なので、値が増加して0に戻る循環動作を表現できません。
関連キーワード: ビット演算、論理積、論理和、8ビットカウンタ、マスク処理、循環カウンタ

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

