← Все вопросы

Зачем нужно исключающее ИЛИ (XOR) и где оно встречается на практике?

Задан 7 месяцев назад260 просмотров2 ответа
6

Узнал про операцию XOR (исключающее ИЛИ, ⊕). С таблицей разобрался — даёт 1 когда значения разные. Но не пойму, зачем оно нужно отдельно, если есть обычные И/ИЛИ. Где XOR реально применяют? Хочется понять смысл, а не просто запомнить таблицу.

2 ответа

11
✓ Принятый ответ — помог автору

XOR (⊕) даёт 1, когда операнды различны, и 0, когда одинаковы:

A B A⊕B
0 0 0
0 1 1
1 0 1
1 1 0

Где он реально пригождается:

  1. Проверка «значения разные». Если надо узнать, отличаются ли два бита/флага — это ровно XOR. Например, «горит ли ровно одна лампочка из двух».

  2. Простое шифрование. Если текст XOR-ить с ключом, а потом результат снова XOR-ить с тем же ключом — получишь исходный текст. Потому что A ⊕ B ⊕ B = A. Свойство «обратимости» — суперполезное.

  3. Поменять две переменные без третьей (старый трюк): a^=b; b^=a; a^=b;.

  4. Найти непарный элемент: если все числа в массиве идут парами и одно лишнее — проксорь все, парные сократятся, останется лишнее.

Так что XOR — это не «лишнее ИЛИ», а отдельный полезный инструмент про различие.

5

Маленькая, но важная связь: XOR — это отрицание эквивалентности. A⊕B = ¬(A≡B). Эквивалентность спрашивает «одинаковые?», XOR — «разные?». Если на это смотреть так, обе таблицы запоминаются за один присест.

Ваш ответ

Войдите, чтобы ответить на вопрос.