Исключающее ИЛИ (XOR)

Мы уже знаем про вентиль ИЛИ (OR), который выдает единицу, если включен хотя бы один из входов. Но в математике и программировании часто нужна более строгая логика: выбор «или то, или другое, но не оба сразу». Для этого существует вентиль Исключающее ИЛИ — XOR (eXclusive OR).

Представь, что мама сказала: «Ты можешь съесть либо мороженое, либо шоколадку». Если ты съешь что-то одно — ты молодец (результат 1). Если ты откажешься от всего — это странно (результат 0). А если ты слопаешь и мороженое, и шоколадку — тебя накажут, условие нарушено (результат 0).

Именно так работает XOR. Он выдает 1 только тогда, когда сигналы на его входах разные (один равен 1, а другой 0). Если на входах одинаковые сигналы (две единицы или два нуля), XOR выдаст 0.

Зачем он нужен? Это важнейший элемент для процессора! Благодаря XOR компьютер умеет складывать двоичные числа, ведь сложение 1 + 1 в двоичной системе дает 10 (ноль пишем, единица в уме). XOR как раз и выдает этот ноль, позволяя процессору переходить к настоящей арифметике.

Практический пример. XOR можно использовать как «управляемый инвертор». Подайте на один вход XOR сигнал данных (0 или 1), а на другой — управляющий сигнал. Если управляющий равен 0 — XOR пропустит данные без изменений. Если 1 — перевернёт каждый бит. Именно так работают простейшие аппаратные шифраторы: наложили ключ через XOR — данные зашифрованы, наложили тот же ключ ещё раз — расшифрованы обратно.