排他的論理和(XOR)とは

排他的論理和(XOR)は、2つの入力値のどちらか一方が真(1)であり、もう一方が偽(0)である場合にのみ、結果が真(1)となる論理演算のことです。

英語の「Exclusive OR」の略称であり、ビット演算や暗号化、誤り訂正符号など、コンピュータサイエンスの広範な分野で基礎的な要素として活用されています。

論理記号と真理値表

排他的論理和は、数学記号では

\oplus

または

\veebar

と表記されます。プログラミング言語(C、Java、Pythonなど)では「^」記号で表現されることが一般的です。

2つの入力 A と B に対する出力の結果(真理値表)は以下の通りです。

入力 A入力 B出力 (A XOR B)
000
011
101
110

この表からわかるように、入力が一致している場合は 0 を、異なっている場合は 1 を出力するという「不一致検出」の特性を持っています。

数学的性質

排他的論理和には、計算を行う上で極めて重要な3つの法則があります。これらの性質により、高度なアルゴリズムへの応用が可能となります。

交換法則

A \oplus B = B \oplus A

結合法則

(A \oplus B) \oplus C = A \oplus (B \oplus C)

自己逆元(反転可能性)

A \oplus A = 0 および A \oplus 0 = A

特に重要なのは

(A \oplus B) \oplus B = A

という性質です。あるデータに対して同じ値で2回 XOR 演算を施すと元のデータに戻るため、データの入れ替えや簡易的な暗号化に利用されます。

主な応用例

1. 暗号化と復号

共通鍵暗号方式の基本原理として利用されます。平文に対して鍵データを XOR することで暗号文を作成し、その暗号文に再び同じ鍵を XOR することで平文を復元します。ストリーム暗号などはこの仕組みを高速に実行します。

2. RAID 5(パリティ計算)

ストレージの冗長化技術である RAID 5 では、データの修復に XOR が用いられます。複数のドライブのデータの XOR を計算して「パリティ」として保存しておけば、1台のドライブが故障しても、残りのドライブとパリティの XOR を取ることで失われたデータを完全に復元できます。

3. フラグの反転

特定のビットを反転させたい場合、そのビット位置を 1 としたマスク値で XOR 演算を行うことで、0 は 1 に、1 は 0 に効率的に切り替えることができます。

物理層・回路設計における役割

デジタル回路において、XOR ゲートは加算器(アダー)の構成要素として不可欠です。

例えば、2進数 1 桁の加算を行う「半加算器」では、和(Sum)を求めるために XOR ゲートが使用されます。

入力 A と B の加算における「和」の出力 $S$ は次のように定義されます。

S = A \oplus B

また、桁上がり(Carry)を $C$ とすると、これは論理積(AND)で求められます。

C = A \cdot B

このように、排他的論理和は単なる論理演算にとどまらず、コンピュータが数値を計算し、情報を守り、欠損を補復するための「デジタル世界の計算基盤」として機能しています。

関連用語

共通鍵暗号方式 | 今更聞けないIT用語集
アルゴリズム | 今更聞けないIT用語集
クラウドソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。