応用情報技術者 2010年 春期 午前2 問01
問題文
0以上255以下の整数に対して、
と定義する。と等しい式はどれか。ここで、 AND 及び OR は、それぞれとを2進数表現にして、けたごとの論理積及び論理和をとったものとする。
選択肢
ア:(正解)
イ:
ウ:
エ:
next(n)の論理演算による表現【午前2 解説】
要点まとめ
- 結論:next(n)は「(n+1) AND 255」で表現できる。
- 根拠:255は8ビットの全ビットが1の数値で、AND演算で下位8ビットを取り出すため。
- 差がつくポイント:ビット演算の意味と255()の役割を正しく理解すること。
正解の理由
next(n)は0から255までの整数を1ずつ増やし、255の次は0に戻る循環構造です。
255は2進数でなので、はの下位8ビットを取り出します。
これにより、のときの2進数はですが、AND演算で下位8ビットは0となり、next(255)=0を実現します。
したがって、アの式がnext(n)の定義と一致します。
255は2進数でなので、はの下位8ビットを取り出します。
これにより、のときの2進数はですが、AND演算で下位8ビットは0となり、next(255)=0を実現します。
したがって、アの式がnext(n)の定義と一致します。
よくある誤解
- 256をANDやORに使うと、9ビット目が影響し、範囲外の値になるため誤りです。
- OR演算はビットを立てる操作なので、値をリセットする動作には適しません。
解法ステップ
- next(n)の定義を確認し、255の次は0に戻ることを理解する。
- 255の2進数表現がであることを認識する。
- の下位8ビットを取り出す方法を考える。
- AND演算で255とを組み合わせると、下位8ビットだけが残ることを確認。
- 他の選択肢のビット演算結果と比較し、条件に合致するものを選ぶ。
選択肢別の誤答解説
- イ: は256がで、ANDすると9ビット目だけを抽出し、0か256の値になるため不適。
- ウ: は常に下位8ビットが1になるため、0〜255の範囲を超え、next(n)の定義と異なる。
- エ: は9ビット目が常に1になり、範囲外の値を返すため誤り。
補足コラム
ビット演算はコンピュータの低レベル処理で頻繁に使われます。
特にAND演算はマスク処理に用いられ、特定のビットだけを抽出する際に便利です。
255は8ビット全てが1の値なので、8ビットの範囲制限に最適なマスク値です。
特にAND演算はマスク処理に用いられ、特定のビットだけを抽出する際に便利です。
255は8ビット全てが1の値なので、8ビットの範囲制限に最適なマスク値です。
FAQ
Q: なぜ255を使うのですか?
A: 255は8ビット全てが1の数値で、AND演算で下位8ビットを抽出できるためです。
A: 255は8ビット全てが1の数値で、AND演算で下位8ビットを抽出できるためです。
Q: OR演算ではなぜダメなのですか?
A: OR演算はビットを立てる操作なので、値をリセットしたり範囲を制限することができません。
A: OR演算はビットを立てる操作なので、値をリセットしたり範囲を制限することができません。
関連キーワード: ビット演算、AND演算、マスク処理、2進数、循環カウンタ

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

