正答3
解説
正解は3です。
8ビットのうち最上位のパリティビットだけを0にし、下位7ビットを取り出すビット演算を問う問題です。
AND(論理積)は、0との演算で結果が0になり、1との演算で元の値がそのまま残ります。
この性質を使い、残したいビットを1、消したいビットを0にした値とANDをとります。
【選択肢別解説】
1:× 16進数0Fは2進数で00001111です。
ANDをとると下位4ビットしか残らず、取り出したいビット4〜6まで0になってしまいます。
2:× OR(論理和)は1との演算で結果を1にする演算です。
0FとのORでは下位4ビットが1に変わり、最上位のパリティビットもそのまま残ります。
3:○ 16進数7Fは2進数で01111111です。
ANDをとると最上位ビットは必ず0になり、下位7ビットは元の値のまま残ります。
4:× FFとのXOR(排他的論理和)は全ビットを反転させる演算です。
下位7ビットの値が変わってしまい、パリティビットも消えません。
【ポイント】
ANDは特定のビットの取り出し(マスク)、ORは特定のビットを1にする操作に使います。
XORは特定のビットを反転させる操作に使います。
取り出したいビット位置を1にした値をマスクパターンと呼びます。