| XOR | |
|---|---|
| 真理値表 | |
| 論理ゲート | |
| 標準形 | |
| 選言的 | |
| 接続詞 | |
| ジェガルキン多項式 | |
| ポストの格子 | |
| 0保存 | はい |
| 1-保存 | いいえ |
| 単調 | いいえ |
| アフィン | はい |
| 自己双対 | いいえ |

排他的論理和、排他的論理和、排他的選択、論理的非等価性、または論理的不等式は、その否定が論理的双条件である論理演算子です。2 つの入力の場合、XOR は入力が異なる場合(一方が真で、もう一方が偽の場合) に限り真になります。複数の入力の場合、XOR は真の入力の数が奇数の場合に限り真になります。[ 1 ]
「排他的論理和」と呼ばれるのは、両方の演算子が真の場合、「または」の意味が曖昧になるためです。XORは、そのようなケースを除外します。XORを非公式に表現する方法としては、「どちらか一方であるが、両方ではない」、「どちらか一方である」、「AまたはBであるが、AとBの両方ではない」などがあります。
これは接頭辞演算子で表されます[ 2 ] : 16および中置演算子XOR( / ˌ ɛ k s ˈ ɔː r /または/ ˈ k s ɔː r / )、EOR、EXOR、、、、⩛、、、、および^。

真理値表これは、入力が異なる場合に常にtrueを出力することを示しています。
排他的論理和は基本的に「どちらか一方であるが、両方ではない、またはどちらもではない」という意味です。言い換えれば、その命題は、一方が真で他方が偽である場合に限り真となります。たとえば、2頭の馬がレースをする場合、2頭のうち1頭がレースに勝ちますが、両方が勝つことはありません。排他的論理和は、、また、またはは、論理結合(「論理的かつ」)で表現できます。)、論理和(「論理または」、)、および否定() 次のように:
排他的論理和次のように表現することもできます。
この XOR の表現は、回路やネットワークを構築する際に役立つ可能性があります。なぜなら、それは 1 つしか持たないからです。操作と少数のそして演算。この同一性の証明は以下に示すとおりです。
書くことは時に役立つ次のように:
または:
この等価性は、上記の証明の4行目にド・モルガンの法則を2回適用することで確立できる。
排他的論理和は、実質含意(実質条件文は、その前件と結果の否定の選言に等しい)と実質等価性の規則により、論理的双条件文の否定にも等しい。
要約すると、数学的および工学的表記では次のようになります。
ド・モルガンの法則の精神を適用すると、次のようになる。
オペレーターは(接続詞)そして(論理和)は論理システムにおいて非常に有用ですが、次のような方法でより一般化された構造を欠いています。
システムそしてこれらはモノイドですが、どちらも群ではありません。残念ながら、このため、これら2つのシステムを組み合わせて、数学的な環のようなより大きな構造を作成することはできません。
しかし、排他的またははアーベル群です。演算子の組み合わせそして要素の上によく知られている2要素場を生成するこのフィールドは、システムで取得可能なあらゆるロジックを表すことができます。さらに、体に関する代数解析ツールの豊富なツール群を利用できるという利点もある。
より具体的には、0と1 の場合、論理「AND」演算は乗算として解釈できます。そして「XOR」演算は加算として:
自然言語では、選言はしばしば排他的に理解される。英語では、選言語「or」は、特に助詞「either」と一緒に使われる場合、しばしば排他的に理解される。以下の英語の例は、通常、会話ではメアリーが歌手であり詩人でもあるわけではないことを示唆していると理解される。[ 4 ] [ 5 ]
しかし、選言は「どちらか一方」と組み合わせた場合でも、包括的に理解することもできます。たとえば、以下の最初の例は、「どちらか一方」が両方の選言が真であるという明確な記述と組み合わせて適切に使用できることを示しています。2番目の例は、下方含意の文脈では排他的推論が消滅することを示しています。この例で選言が排他的に理解された場合、一部の人々が米と豆の両方を食べる可能性が残されます。[ 4 ]
上記のような例は、排他性推論を、包括的な意味論に基づいて計算される実用的な会話的含意として分析する動機付けとなっている。含意は通常取り消し可能であり、その計算が量の公理に依存する場合、下方含意の文脈では生じない。しかし、一部の研究者は排他性を正真正銘の意味的含意として扱い、それを検証する非古典的論理を提案している。[ 4 ]
英語の「or」のこの振る舞いは他の言語でも見られます。しかし、多くの言語にはフランス語のsoit... soitのように、排他的な選言構文があります。[ 4 ]
排他的論理和を表す記号は、応用分野によって異なり、議論の文脈で強調される特性によっても異なります。「XOR」という略語の他に、以下の記号が用いられることもあります。


排他的論理和は、ビット演算によく用いられます。例:
前述のように、排他的論理和は2を法とする加算と同一であるため、2つのnビット文字列のビットごとの排他的論理和は、ベクトル空間における標準的な加算ベクトルと同一である。。
コンピュータサイエンスにおいて、排他的論理和にはいくつかの用途がある。
論理回路では、単純な加算器は、 XORゲートで数値を加算し、AND、OR、NOTゲートを連続して使用して桁上がり出力を生成することで構成できます。
コンピュータのアーキテクチャによっては、レジスタを自身とXOR演算することでゼロをレジスタに格納する方が、ゼロの値を読み込んで格納するよりも効率的です(自身とXOR演算されたビットは常にゼロになります)。
暗号学において、XORはワンタイムパッドやファイステルネットワークシステムのように、単純な自己逆混合関数として使用されることがあります。また、AES(Rijndael)やSerpentなどのブロック暗号、およびブロック暗号の実装(CBC、CFB、OFB、CTR)においても、XORは広く用いられています。
単純な閾値活性化型人工ニューラルネットワークでは、XOR関数は線形分離可能な関数ではないため、XOR関数をモデル化するには第2層が必要となる。
同様に、XOR はハードウェア乱数発生器のエントロピー プールを生成する際に使用できます。XOR 演算はランダム性を保持するため、ランダム ビットと非ランダム ビットを XOR するとランダム ビットが得られます。複数の潜在的にランダムなデータ ソースを XOR で組み合わせることができ、出力の予測不可能性は、最良の個々のソースと同等以上であることが保証されます。[ 22 ]
RAID 3~6では、パリティ情報を作成するためにXORが使用されます。例えば、RAIDはバイトを「バックアップ」することができます。10011100 2および01101100 2は、前述のバイトを XOR することで 2 つ (またはそれ以上) のハードドライブから取得され、結果として (11110000 2 ) を別のドライブに書き込みます。この方法では、3 つのハードドライブのいずれかが失われた場合、残りのドライブのバイトを XOR することで失われたバイトを再作成できます。たとえば、ドライブに 11110000 が含まれている場合、01101100 2が失われました。10011100 2および11110000 2を XOR することで、失われたバイトを復元できます。[ 23 ]
XOR演算は、符号付き2進数演算の結果におけるオーバーフローを検出するためにも使用されます。結果の左端のビットが、その左にある無限桁のビット数と一致しない場合、オーバーフローが発生したことを意味します。オーバーフローが発生した場合、これら2つのビットをXOR演算すると「1」が得られます。
XORは、 XORスワップアルゴリズムを使用してコンピュータ上で2つの数値変数を交換するために使用できますが、これはどちらかというと興味深いものであり、実際には推奨されていません。
XOR連結リストは、 XORの特性を利用して、二重連結リストのデータ構造を表現するためのスペースを節約します。
コンピュータグラフィックスでは、アルファチャンネルやオーバーレイプレーンを持たないシステム上で、バウンディングボックスやカーソルなどの要素を処理するために、XORベースの描画手法がよく用いられる。
LaTeXベースのマークダウンでは「左右矢印ではない」( \nleftrightarrow)とも呼ばれます() ASCII コードとは別に、演算子はブロック数学演算子のU+22BB ⊻ XOR ( & veebar; )とU+2295 ⊕ CIRCLED PLUS ( & CirclePlus;, & oplus; )にエンコードされています。
{{cite book}}ISBN /日付の不一致(ヘルプ)