Описание
Не является настолько интуитивной операцией, как побитовое и и побитовое или, поэтому чаще их используется в различных задачах. Таблица:
Обладает полезными свойствами, например коммутативностью:
ассоциативностью:
и одно из самых полезных - самообратимость:
что бывает очень полезно в различных задачах при попытке поменять условия на более удобные для решения задачи. Для понимания иногда проще воспринимать xor как сложение по модулю 2. Также заменяется на более простые операции таким образом:
В C++ используется символ ^ для обозначения xor.
Прикольные свойства
Xor пример самой приятной операции над числами, она умеет почти все и обладает почти всеми основными классными свойствами операций, но не только ими. Например xor суммы первых n чисел можно считать за , он зависит от остатка числа n по модулю 4, что можно доказать по индукции.
Примеры
#include <bits/stdc++.h>
using namespace std;
int main() {
long long a = 13; // 1101
long long b = 6; // 110
long long c = a ^ b; // 1011
cout << c; // Программа выведет 11
}