本文へ移動

排他的論理和(XOR)

排他的論理和(XOR)は、2つの入力のうち正しいものがちょうど1つであるときに真となる論理演算です。ブール代数、デジタル回路、暗号、パリティチェックで用いられます。

概要

排他的論理和は、一般に排他的ORまたはXORと呼ばれ、2つの入力の一方が真で他方が偽である場合に限り真を返す基本的な論理演算である。両方の入力が真であることも許す通常の包含的論理和とは対照的である。XORはブール代数やデジタル設計で広く用いられ、プログラミングではビット単位演算子として現れる。

この演算はしばしば⊻や⊕などの記号で表される。形式的な記述では、2つの論理演算、または2つの値に対する二項代数演算として説明されることがある。簡潔な覚え方は、「一方または他方、ただし両方ではない」である。

画像ギャラリー

1 画像

定義と真理値表

XORは2つの入力を取り、1つの出力を返す。結果が真となるのは、入力が異なる場合に限られる。短い真理値表を以下に示す。

  • 入力A=偽、入力B=偽 → 出力=偽
  • 入力A=偽、入力B=真 → 出力=真
  • 入力A=真、入力B=偽 → 出力=真
  • 入力A=真、入力B=真 → 出力=偽

性質と代数的表現

代数的には、XORは法2加算とみなせる。すなわち、1 XOR 1=0、1 XOR 0=1である。XORには可換性(A XOR B=B XOR A)と結合性((A XOR B) XOR C=A XOR (B XOR C))があるため、複数入力のXORを定義できる。XORは自己逆演算でもあり、同じ値を2回適用すると打ち消し合う(A XOR A=偽)。これらの性質により、トグル操作や誤り検出の仕組みに有用である。

用途と例

XORは多くの実用的な場面に現れる。デジタル電子回路では、条件付き選択や算術回路のためのXORゲートとして実装される。コンピュータのプログラミング言語では、オペランドが異なる位置のビットを反転させるビット単位演算子として一般的に存在する。暗号構成や単純なストリーム暗号では、その可逆性からXORが利用される。すなわち、データ XOR 鍵=暗号文、暗号文 XOR 鍵=データとなる。パリティビットやチェックサムの手法は、1ビット誤りの検出にXORを用いる。

区別と注目すべき事実

重要な区別は、排他的論理和と包含的論理和の違いである。包含的論理和は入力の一方または両方が真なら真を返すのに対し、XORでは真の入力がちょうど1つでなければならない。XORは論理包含や同値とも異なる。同値(XNOR)は入力が等しいときに真となり、XORの論理否定である。関連する演算については、包含的論理和およびブール結合子に関する説明も参照されたい。包含的論理和

これらの特性により、XORは論理、算術回路、差異、パリティ、可逆的符号化に依存する多くのアルゴリズムにおいて、簡潔で汎用性の高い基本要素となっている。

関連項目

著者

AlegsaOnline.com 排他的論理和(XOR)

URL: https://ja.alegsaonline.com/art/32895

共有