Имате дълга редица от нечетен брой цели числа от които само един елемент е уникален, а другите се повтарят по двойки. Да се намери уникалният елемент.

Колко удобно би било, ако тия еднакви по двойки елементи бяха вместо еднакви противоположни. Така просто щяхме да съберем всички числа и да получим уникалния елемент, защото другите щяха да се угасят до сума 0. Т.е. трябва ни операция която нулира два еднакви елемента. Но такава операция е XOR - изклюващото или. От два еднакви прави 0, от два различни прави 1.

0 0 - 0
0 1 - 1
1 0 - 1
1 1 - 0

Операцията е побитова и работи за цели числа добре. Решението в псевдокод:

15  = List.of(45,45,3,15,3,84,84,33,33).
      stream().
      reduce( (a,b) -> a^b )

С една дума тая операция намира ергена в навалицата.

Долният фрагмент пък, разменя две променливи без междинна използвайки XOR.

a=a^b
b=a^b
a=a^b

Т.е. тая операция прави двама души да се харесват до степен, че да се разменят като личности само след третата среща. Пристрастяваща операция.
Няма или, или. Има изключващо или.