Исключающее ИЛИ (XOR)
Входы (Inputs)
| Пин | Тип | Описание |
|---|---|---|
| A | bit | Первый входной сигнал |
| B | bit | Второй входной сигнал |
Выходы (Outputs)
| Пин | Тип | Описание |
|---|---|---|
| Q | bit | 1 если 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 — сердце любого сумматора.
Таблица истинности и примеры
| A | B | Q |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Пример проверки чётности: прогони байт через цепочку 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. Это сложение «без остатка».