Exclusive OR Calculator

ビット演算の核心:A ^ B を精密にシミュレート。

A (BIN) --
B (BIN) --
XOR RESULT --
10進数 (DEC)
--
16進数 (HEX)
--

XOR(排他的論理和)の深淵:ITエンジニアが知るべきビットの魔法

コンピュータの内部では、すべてのデータは「0」と「1」のビット列で表現されています。この最小単位の世界において、最も強力かつ美しく活用されている演算がXOR(排他的論理和:Exclusive OR)です。

「どちらか一方が正しい(1)ときだけ結果が正しい(1)になる」というこの論理演算は、プログラミングにおけるビット操作、暗号化、データの誤り訂正、さらには画像処理に至るまで、現代のあらゆるテクノロジーの基礎を支えています。

1. XORの基本原理:真理値表で見極める

XORは、2つの入力が「異なる」ときにのみ1を出力し、「同じ」ときには0を出力します。これを「排他的(Exclusive)」と呼ぶのは、両方が1(包含的なOR:単なる論理和)の場合の結果を除外しているためです。

Input A Input B Output (A ^ B)
0 0 0
0 1 1
1 0 1
1 1 0

この「自分自身と同じものをぶつけるとゼロになる」という性質が、数多くの応用を生み出しています。

2. 暗号学の聖杯:ワンタイムパッド

暗号学において、XORは最も単純かつ強力なツールです。平文 P に対し、ランダムな鍵 K を使って XOR 演算を行うと暗号文 C が生成されます。

(P ^ K) = C

この暗号文 C に対し、再び同じ鍵 K を作用させると、驚くべきことに元の平文 P が復元されます: (C ^ K) = P。もし鍵が完全にランダムで、平文と同じ長さがあり、一度しか使われない場合(ワンタイムパッド)、この暗号は数学的に「絶対に解読不能」であることが証明されています。

3. データ完全性と RAID 5 の仕組み

ストレージ技術であるRAID 5(分散パリティ)も、XORの性質を巧みに利用しています。複数のディスクに保存されたデータの XOR を計算して「パリティ」として保存しておけば、1台のディスクが物理的に故障しても、残りのディスクのデータとパリティを再び XOR することで、失われたデータを完全に復元することができます。

例えば、A, B, C というデータがある場合、Parity = A ^ B ^ C を計算します。もし B のディスクが壊れても、A ^ C ^ Parity を演算すれば、B の値が魔法のように蘇ります。

4. プログラミングにおける XOR ハック

開発現場において、XORは単なる比較以上の力を発揮します。

  • 一時変数なしでの値の交換: a ^= b; b ^= a; a ^= b; という3行のコードで、一時的なメモリを消費せずに2つの変数を入れ替えることができます。
  • 差分の検出: 全く同じ内容のファイルやメモリブロックを XOR すると、結果はすべて 0 になります。0 以外のビットが立っている場所が、即ち「変更点(差分)」です。
  • チェックサム: 簡易的なエラーチェックとして、全データの XOR を取る手法(LRC:垂直冗長検査)が古くから通信プロトコルで使われてきました。

5. ビット演算とハードウェア

CPUの内部回路(ALU:算術論理演算ユニット)において、XORゲートは「加算器」の核となります。2つのビットを足す際、桁上がりを無視した足し算の結果は、まさに XOR そのものです。情報の最小単位を操る IT エンジニアにとって、XOR を理解することは、コンピュータの思考そのものを理解することに他なりません。

エンジニアのための XOR まとめ

  1. 同値なら 0: x ^ x = 0
  2. ゼロとの演算は自分自身: x ^ 0 = x
  3. 結合法則と交換法則: 演算の順序を入れ替えても結果は変わりません。
  4. 可逆性: 同じ値を2回 XOR すると元に戻ります。