戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2011年 春期 午前202


問題文

次の論理演算が成立するときに、[ a ]に入るビット列はどれか。ここで、⊕は排他的論理和を表す。    1101⊕0001⊕[ a ]⊕1101=1111

選択肢

1011
1100
1101
1110(正解)

🔒 解説は解答すると表示されます

排他的論理和の逆算【午前2解説】

正解の理由

式を簡単にすると、同じビット列どうしの排他的論理和(XOR)は消える性質を利用できます。元の式 とでき、 なので になります。よって です。したがって選択肢の中では が正しいです。

解法ステップ

  1. XOR の基本性質を確認する:、結合法則と交換法則が成り立つ。
  2. 与式を同類項でまとめる:
  3. を適用して に変形。
  4. 両辺を と XOR して を得る。

選択肢別の誤答解説

  • ア: 1011
    直接代入して確認します。 より となり、目的の になりません。従って不適。
  • イ: 1100
    同様に となり、 と一致しません。
  • ウ: 1101
    この場合は元式に が三回現れますが、XOR の性質上 (偶数回は消え、奇数回は残る)なので残りは で、やはり ではありません。
  • エ: 1110
    となり、与式を満たします。よって正解は です。

よくある誤解

  • x⊕x⊕x = 0 と誤解することがあるが、実際は x⊕x⊕x = x(同じものの出現回数が奇数なら残り、偶数なら消える)。
  • ビット毎のXORを十進数として扱って計算するミス。常に各ビットごとに演算すること。
  • XOR を加算やビット反転(NOT)と混同するケース。XORは「等しいビットは0、異なるビットは1」を返す演算である。

補足コラム

XOR は暗号や誤り検出(パリティ)、ハッシュ関数の一部など幅広く使われます。方程式形式で a を求める場合、一般に もし A ⊕ a = B なら a = A ⊕ B が成り立ちます。今回のように式中に同じ値が複数回出てくるときは、まず同じものをまとめて取り除くと式が大幅に簡単になります。
簡単な検算用 Python 例:
# 各値を整数にして XOR で検算
a_options = {
    'ア': 0b1011,
    'イ': 0b1100,
    'ウ': 0b1101,
    'エ': 0b1110
}
for label, val in a_options.items():
    result = 0b1101 ^ 0b0001 ^ val ^ 0b1101
    print(label, format(result, '04b'))
# 正しい選択肢は出力が '1111' になるもの

FAQ

Q: なぜ 1101 が二回あると消せるのですか?
A: XOR の性質で同じビット列を二回 XOR すると 0 になるためです()。
Q: 順序を入れ替えても結果は同じですか?
A: はい。XOR は交換法則・結合法則が成り立つため、順序に依存しません。
Q: 複数回出現する場合の扱いは?
A: 同じ値が偶数回出現すれば消え、奇数回出現すれば1回分が残ります(例えば3回なら1回分残る)。

関連キーワード: 排他的論理和, XOR, ビット演算, パリティ, 二進数
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について