8ビットの2進データXと00001111について,ビットごとの論理積をとった結果はどれか。ここでデータの左方を上位,右方を下位とする。
平成30年度 秋期 ITパスポート試験 問79
テクノロジ系基礎理論 › 離散数学
この問題の解説と、これまでの解答の記録です。
問79
頻出度★★☆
解説
問 79
不正解ア
残る側と 0 になる側が逆です。「下位4ビットが 0、上位4ビットが残る」結果になるのは、マスクが 11110000 (上位が 1、下位が 0) のときです。マスク 00001111 では 0 の位置 (上位) が消え、1 の位置 (下位) が残るので、この記述は当てはまりません。
不正解イ
「下位4ビットが全て 1 になる」のは論理和 (OR) の性質であり、AND ではありません。AND では 1 との演算はビットを 1 に固定せず、元の値を保つだけです。さらに残る側 (上位/下位) の対応も逆になっており、二重に誤りです。
- ウ
正解 マスク定数 00001111 は、上位4ビットが 0000、下位4ビットが 1111 です。論理積 (AND) は「両方が 1 のときだけ 1、それ以外は 0」という演算なので、あるビットと 0 の AND は必ず 0 (値が消える)、1 の AND は元の値がそのまま残る、という性質があります。したがって X と 00001111 の AND では、上位4ビットは 0 との AND で全て 0 になり、下位4ビットは 1 との AND で X の値がそのまま残ります。これは選択肢ウ「上位4ビットが全て 0 になり、X の下位4ビットがそのまま残る」と一致します。
不正解エ
「上位4ビットが全て 1 になる」という点が誤りです。マスクの上位4ビットは 0 なので、AND の結果は 1 ではなく必ず 0 になります。1 に固定されるのは OR の性質であり、AND ではビットを 1 で埋めることはできません。
ここがポイント
- ビットマスクにおける AND の基本性質: 「0 との AND は 0 (そのビットを消す)」「1 との AND は元の値のまま (そのビットを残す)」。マスクの 1 の位置だけが値を通す。
- AND と OR の役割の違い: AND (00001111) は必要な下位ビットだけを取り出すマスク、OR は特定ビットを 1 にセットする演算であり、両者を混同しない。
用語