メインコンテンツへ
基礎理論

8ビットのバイト A=10110101、B=01101110 がある。(A XOR B) AND 11110000 の結果として、正しいものはどれか。

ア.00011011
イ.10100000
ウ.11010000正解
エ.11011011

解説

ビット演算は「列ごとの独立イベント」。XORは「違うとき1」、ANDマスクは「上位4ビットだけ残すフィルター」。1列ずつ淡々と処理すれば、桁上がりもなく機械的に解けます。

なぜ ウ が正解か

ウが正解。手順1(A XOR B):A=10110101、B=01101110。同じビットなら0、違うビットなら1。各桁:1⊕0=1、0⊕1=1、1⊕1=0、1⊕0=1、0⊕1=1、1⊕1=0、0⊕1=1、1⊕0=1 → 11011011。手順2(AND 11110000):マスクは上位4ビット1、下位4ビット0。上位4ビット 1101 はそのまま、下位4ビット 1011 は全部0に潰される → 11010000。

なぜ ア は間違いか

00011011 は XOR と AND の順序を逆にしたり、マスクのビットパターンを反転(00001111)した場合に出やすい値。マスクは「残したい桁を1」と覚える。

なぜ イ は間違いか

10100000 は XOR ではなく AND(両方1で1)で計算してしまった結果。AND は「両方とも光る電球だけ点く」、XOR は「片方だけ光るとき点く」と区別する。

なぜ エ は間違いか

11011011 は AND マスクを適用し忘れて XOR 結果(11010111)に近いが、計算ミスもある。マスク操作を確実に最後まで実行することが重要。

出典: AI生成問題(学習用)