排他的論理和

排他的論理和（はいたてきろんりわ、）とは、ブール論理や古典論理、ビット演算などにおいて、2つの入力のどちらか片方が真でもう片方が偽の時には結果が真となり、両方とも真あるいは両方とも偽の時は偽となる演算（論理演算）である。XOR、EOR、EX-OR（エクスオア、エックスオア、エクソア）などと略称される。
表記法.
中置演算子のある体系では、中置演算子を利用した中置記法により表記されることが多い。演算子は formula_1 (Unicode: U+22BB ⊻)、formula_2。誤解のおそれがないときは、XOR、xor、formula_3 (Unicode: U+2295 ⊕)、+、≠ なども使われる。
論理学などでは formula_1 を使用して formula_5 と書くことが多く、論理回路などでは formula_3 を使用して formula_7 と書くことが多い。
プログラミング言語.
記号を使った中置演算子としては codice_1 や codice_2 などが使われることが多く、キーワードが演算子になるような言語では codice_3 や codice_4 などが使われることが多い。
例.
「私の身長は160cm以上である」と「私の体重は52kg未満である」の二つの命題の排他的論理和は、これらのうち一方のみが成り立つことであるから、「私は身長160cm以上であり体重が52kg以上である。あるいは、私は身長160cm未満であり体重が52kg未満である。」となる。
なお、2つの命題 "A", "B" について共通部分 "A" ∧ "B" が空集合であれば、排他的論理和は論理和と同じになる。例えば "A" = 「私の身長は160cmである」と "B" = 「私の身長は170cmである」は同時に成立することはない（共通部分が空である）ので、("A" xor "B") は ("A" ∨ "B") と同じく「私の身長は160cmまたは170cmのいずれか一方である」となる。
性質.
排他的論理和は、論理和、論理積、否定を用いて、
などと表すことができる。
2を法とする剰余体 formula_11 での加算（この体では加算と減算は等しい）は、0 を偽、1 を真とみなすと、排他的論理和となる。つまり、偶数 (0, 偽) どうしまたは奇数 (1, 真) どうしを加えると偶数 (0, 偽) になり、偶数 (0, 偽) と奇数 (1, 真) を加えると奇数 (1, 真) になる。
ビットごとの排他的論理和.
2進数表現した数値の各ビットに対し、0 を偽、1 を真とみなして排他的論理和を求めた結果を、ビットごとの排他的論理和、排他的ビット和、または単に排他的論理和と呼ぶ。
    "P" = 0011
    "K" = 0110
 "P" ⊕ "K" = 0101
ビットごとの排他的論理和は、桁上がりを無視した2進数の加算の結果と等しい。つまり、ビットごとの排他的論理和は、2 の冪を位数とする有限体 formula_12 での加減算（この体では加算と減算は等しい）に等しい。（なお、2を法とする剰余体 formula_11 は、位数2の有限体 formula_14 である。）
1 桁の2進数の排他的論理和は、半加算器の一部である。
ビット演算.
ビットごとの排他的論理和は、コンピュータ上でビット演算を行っている場合に、特定のビットだけを反転させるのによく用いられる。ある数値と、その数値のビットを反転させたい部分を 1 にした数値との排他的論理和をとると、指定した部分が反転した数値が得られる:
多くのプロセッサで、レジスタをゼロにする場合に、直接ゼロを書き込むより、自分自身とのXORをとってゼロとするほうが（コードサイズや速度などで）有利な場合がある。
ビットごとの排他的論理和によって、多数の入力における偽の個数の奇数・偶数（パリティ）が検出できるので、誤り検出に用いられる。この目的で排他的論理和（論理ゲート）を樹枝状に接続した回路をパリティツリーという。
ビットごとの排他的論理和は特定ビットの反転操作なので、2回繰り返せば元に戻る。つまり
これは、結合法則によって、次のとおりに証明できる。
この性質は便利であって、さまざまな応用がある。単純なものでは、（現代では有用性はほとんどないが）2個のレジスタの内容を他の資源を使わず交換できる「XOR交換アルゴリズム」があり、データ構造では「XOR連結リスト」がある。
暗号.
formula_19 を鍵とする暗号に使うこともできる。平文を formula_20 とすると、formula_21 を暗号文とすることができる。
先の例でいえば、平文 formula_22 が鍵 formula_23 を使って暗号文 formula_24 に変換され、次のとおり同一の鍵を使って暗号文から平文に復号できる。
バーナム暗号は、この性質を利用した暗号である。一般に鍵交換問題があることから、短い鍵を元にした何らかの数列を使うことも多いが、ワンタイムパッドによるバーナム暗号には原文と同じ長さの鍵（そのような大量の情報量をもつものは、もはや運用上は「鍵」とはいえないが）が必要である。解読が絶対に不可能（理論的に、どのような解読結果も同様に確からしいものになってしまう）という意味では最強の暗号であるが、暗号の利用は運用の面も含めて総合的に判断しなければならないものであり、鍵の事前共有とその秘匿に必要な多大なコストが大きな難点である。
その他.
排他的論理和と2進数表記を用いて、三つ山崩し（ニム）の必勝法を導くことができる。