応用情報技術者 2016年 秋期 午前2 問01
問題文
8ビットのデータ及びの値をそれぞれ16進表現で0F, F0とするとき、8ビットのデータの下位4ビットを反転させ、上位4ビットを0にする論理式はどれか。ここで、は論理積を表し、は否定を表す。
選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
マスクによるビット操作【午前2解説】
正解の理由
=0F(0000 1111)は下位4ビットだけが1のマスクです。 を反転した と の論理積をとると、下位4ビットには反転した の値がそのまま残り、上位4ビットは の0との論理積で0になります。したがって「下位4ビットを反転させ、上位4ビットを0にする」式は で、ウが正解です。
解法ステップ
- マスクのビット構成を確認する。
- =0F=0000 1111(下位4ビットが1)
- =F0=1111 0000(上位4ビットが1)
- 論理積の性質を使う。1との論理積は元の値がそのまま残り、0との論理積は必ず0になる。
- 「下位4ビットを反転」は の下位4ビットを残すこと、「上位4ビットを0」は上位4ビットを0との論理積で消すことなので、 と下位マスク の論理積 になる。
例えば =1010 0110 のとき、=0101 1001、=0000 1001 となり、下位4ビット(0110)が反転して1001、上位4ビットが0になっています。
選択肢別の誤答解説
- ア:
は「 の下位4ビットを残し上位4ビットを0にした値」で、その全体を否定すると下位4ビットは反転しますが、上位4ビットは全て1になります。上位4ビットが0になりません。 - イ:
(上位4ビットを残し下位4ビットを0)の全体を否定するので、上位4ビットは反転、下位4ビットは全て1になります。 - ウ:
下位4ビットは を反転した値、上位4ビットは0になります。要求どおりです。 - エ:
上位4ビットに を反転した値が残り、下位4ビットが0になります。上下が逆です。
よくある誤解
- (論理積の結果全体の否定)と ( だけを否定してから論理積)を混同すること。否定の線がどこまで掛かっているかで結果が変わります。
- マスクの向きを取り違えること。0F は下位4ビット、F0 は上位4ビットを取り出すマスクです。
補足コラム
特定のビットの操作は、マスクとの論理演算で表せます。
- 論理積(AND):マスクの1の位置を残し、0の位置を0にする(取り出し・クリア)
- 論理和(OR):マスクの1の位置を1にする(セット)
- 排他的論理和(XOR):マスクの1の位置を反転する(トグル)
例えば、本問の操作は と書くこともできます。
FAQ
Q. ド・モルガンの法則で を変形すると?
A. です。=F0 なので、上位4ビットは必ず1になります。ウとは別の式です。
A. です。=F0 なので、上位4ビットは必ず1になります。ウとは別の式です。
関連キーワード: ビット演算、マスク、論理積、否定、ド・モルガンの法則

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

