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

Входы (Inputs)

ПинТипОписание
AbitПервый входной сигнал
BbitВторой входной сигнал

Выходы (Outputs)

ПинТипОписание
Qbit1 если A≠B

Логика работы

XOR — это «или-или» из разговорной речи: «возьми одно ИЛИ другое, но не оба сразу». Классический пример — выключатели на двух концах лестницы: щёлкни любым из них, и свет переключится. Вентиль отвечает на короткий вопрос «входы разные?».

Главное свойство: выход равен 1, когда входы различаются, и 0, когда совпадают. Отсюда два полезных трюка. XOR(A,1) переворачивает бит — управляемый инвертор. А XOR(A,A) всегда даёт 0, поэтому в процессорах так обнуляют регистры. Пример побольше: XOR двух одинаковых байтов даёт 00000000 — так сравнивают данные на равенство.

Нюанс: XOR — не базовый вентиль, в игре он собирается на уровне 5 из более простых деталей по формуле AND(OR(A,B), NAND(A,B)). Математики называют его сложением по модулю 2: в двоичной системе 1+1=10, но XOR оставляет только младший бит — перенос исчезает. Именно поэтому XOR — сердце любого сумматора.

Таблица истинности и примеры

ABQ
000
011
101
110

Пример проверки чётности: прогони байт через цепочку XOR (7 вентилей для 8 бит) — на выходе 1, если единиц в байте нечётное количество. Так формируются биты чётности, ловящие одиночную ошибку при передаче данных.

Применение

XOR открывается на уровне 5 «Строгий выбор» и сразу становится рабочей лошадкой арифметики: бит суммы в полусумматоре (уровень 6) — это чистый XOR, а в полном сумматоре и АЛУ их уже несколько подряд. Шинная версия BusXOR применяет операцию к целому байту.

Конкретные применения: детектор различий (сравнение двух битов или байтов — нулевой результат значит «равны»), управляемая инверсия (XOR с единицей или маской переворачивает выбранные биты), биты чётности и простейшие контрольные суммы. Даже шифрование использует XOR: наложи ключ на данные дважды — получишь исходные данные обратно.

Интерактивная демонстрация

Кликайте по входам, чтобы переключить значение (0 / 1)

Собери это сам →

Смежные компоненты

Статьи по теме

Частые вопросы

Зачем нужен XOR?

Для проверки на различие значений, контрольных сумм и управляемого инвертирования: XOR с единицей переворачивает бит.

Как XOR связан с сумматором?

XOR считает бит суммы двух чисел, AND — бит переноса. Вместе они образуют полусумматор.

Как собрать XOR из базовых вентилей?

По формуле AND(OR(A,B), NAND(A,B)): четыре вентиля. Логика такая: «хотя бы одна единица» И «не обе сразу».

Почему XOR называют сложением по модулю 2?

Потому что он складывает биты и отбрасывает перенос: 1+1=10₂, но XOR выдаёт только младший бит — 0. Это сложение «без остатка».