Obsah

XOR (Exclusive OR)

XOR je logický hradlo (operátor), které porovnává dva vstupy. Jeho výstup je pravda (1) pouze tehdy, pokud jsou vstupy rozdílné. Pokud jsou vstupy stejné (oba nuly nebo oba jedničky), výsledek je nepravda (0).

V matematice a informatice se často značí symbolem $\oplus$.


1. Pravdivostní tabulka (Truth Table)

Toto je „bible“ chování XORu. Všimněte si, že funguje jako detektor rozdílů.

Vstup A Vstup B Výstup (A XOR B) Vysvětlení
0 0 0 Jsou stejné.
0 1 1 Jsou různé.
1 0 1 Jsou různé.
1 1 0 Jsou stejné (toto je hlavní rozdíl oproti klasickému OR).

2. Magická vlastnost: Vratnost

To, co dělá XOR tak užitečným pro počítače (a důvod, proč na něm stojí RAID a šifrování), je jeho reverzibilita.

Pokud vezmete nějakou hodnotu A a „zamaskujete“ ji hodnotou B pomocí XOR, získáte šifru C. Pokud tuto šifru C znovu „odmaskujete“ pomocí stejného B, získáte zpět původní A.

$$ (A \oplus B) \oplus B = A $$

Tato rovnice říká: Aplikováním XOR dvakrát vrátíte změny zpět.


3. Praktická využití

A. Šifrování dat (Kryptografie)

XOR je základem většiny šifrovacích algoritmů (např. proudových šifer).

Pokud útočník nezná klíč, vidí jen náhodná čísla. Pokud příjemce použije klíč znovu, získá původní zprávu.

B. RAID a Obnova dat

Jak jsme zmínili u paritního disku:

Když Disk 1 shoří, systém vezme Disk 2 a Paritu, provede mezi nimi XOR ($1010 \oplus 0110$) a výsledkem je zázračně obsah ztraceného Disku 1 (1100).

C. Programátorský trik (Swap)

Pomocí XOR lze prohodit obsah dvou proměnných bez použití třetí (pomocné) proměnné.

x = x ^ y; // Změní x na "mix" obou
y = x ^ y; // Změní y na původní x
x = x ^ y; // Změní x na původní y

XOR v běžném životě (Analogie)

Představte si vypínač světla na chodbě, který se ovládá ze dvou míst (schodišťový vypínač).

Světlo svítí jen tehdy, když jsou vypínače v různých polohách.


Související pojmy: Parita, RAID, Logické hradlo, Binární soustava, Šifrování, Bitová operace.