ビットの反転とマスク
出典: 平成28年度 秋期 応用情報技術者試験 午前 問1 (IPA)
8 ビットのデータ X 及び Y の値をそれぞれ 16 進表現で 0F,F0 とするとき,8 ビットのデータ A の下位 4 ビットを反転させ,上位 4 ビットを 0 にする論理式はどれか。ここで,X・Y は論理積を表し,Z̅ は否定を表す。
※ 原文では否定を上線で表しています。選択肢では ¬ で表しています。
- ア ¬(A・X) (A・X の全体の否定)
- イ ¬(A・Y) (A・Y の全体の否定)
- ウ ¬A・X (A の否定と X の論理積)
- エ ¬A・Y (A の否定と Y の論理積)
正解と解説を見る
正解: ウ
- ア: A・X の全体を否定すると、上位 4 ビットは 1 になってしまいます。
- イ: A・Y の全体を否定すると、下位 4 ビットが全て 1 になり、A の値が残りません。
- ウ: A を反転してから 0F との論理積を取るので、下位 4 ビットは反転、上位 4 ビットは 0 になります。正しい答えです。
- エ: A を反転してから F0 との論理積を取ると、上位 4 ビットが反転して残り、下位 4 ビットが 0 になります。逆です。
ポイント
- A の否定 (A̅) で、全てのビットが反転します。
- それと X (0F = 0000 1111) の 論理積 を取ると、上位 4 ビットは 0 になり、下位 4 ビットは反転した値がそのまま残ります。
- よって A̅・X です。論理積で 0 にしたいビットは 0、残したいビットは 1 にした値 (マスク) を使います。