Калькулятор XOR: исключающее ИЛИ и биты
Вычисляйте XOR для булевых значений, двоичных последовательностей и десятичных целых с пошаговыми пояснениями и таблицей истинности.
Выберите тип операции, введите два значения и нажмите «Вычислить», чтобы увидеть результат XOR с необязательной таблицей истинности и пошаговым разбором.
Калькулятор XOR: исключающее ИЛИ и биты
Вычисляйте XOR для булевых значений, двоичных последовательностей и десятичных целых с пошаговыми пояснениями и таблицей истинности.
Вычисляет XOR для двух булевых значений (0/1 или true/false). Возвращает true, когда ровно одно из значений истинно.
О калькуляторе XOR
XOR, сокращение от Exclusive OR («исключающее ИЛИ»), — одна из базовых логических операций в булевой алгебре и цифровой электронике. В отличие от обычного OR, который возвращает true, если истинно хотя бы одно значение, XOR возвращает true только тогда, когда истинно ровно одно из двух значений — и никогда, когда оба истинны или оба ложны. Именно это «исключающее» поведение делает XOR особенно полезным во многих вычислительных и математических задачах.
На самом простом уровне булев XOR — это бинарный логический элемент. Если подать два входа — каждый либо 0 (false), либо 1 (true), — выход будет равен 1 только тогда, когда входы различаются. Полная таблица истинности: 0 XOR 0 = 0, 0 XOR 1 = 1, 1 XOR 0 = 1 и 1 XOR 1 = 0. Это напрямую соответствует выражению «либо одно, либо другое, но не оба». В повседневной речи «я возьму торт или пирог (но не оба)» — это утверждение XOR.
Двоичный XOR расширяет булевой случай на целые битовые строки. Каждая соответствующая пара битов из двух входных последовательностей XOR'ится независимо, чтобы получить выходной бит. Например, 1010 XOR 1100 = 0110, потому что первые биты (1 и 1) дают 0, вторые (0 и 1) дают 1, третьи (1 и 0) дают 1, а четвертые (0 и 0) дают 0. Эта операция фундаментальна в цифровой связи для обнаружения ошибок, в RAID-системах для расчета четности и в криптографии как ключевой компонент потоковых шифров.
Побитовый XOR одновременно работает со всей двоичной формой десятичных целых. Современные процессоры реализуют побитовый XOR как однотактную инструкцию, поэтому он очень быстрый. Программисты используют побитовый XOR для многих приемов: обмен двух чисел без временной переменной (a ^= b; b ^= a; a ^= b;), переключение отдельных битов в маске, поиск единственного уникального числа среди дубликатов и вычисление контрольных сумм. Свойства a XOR a = 0 (любое значение, XOR'енное с самим собой, дает ноль) и a XOR 0 = a (любое значение, XOR'енное с нулем, остается тем же) лежат в основе многих таких применений.
В криптографии XOR — основа одноразового блокнота (one-time pad) — единственной теоретически неуязвимой схемы шифрования, если ключ действительно случаен и используется только один раз. Каждый бит сообщения XOR'ится с соответствующим битом ключа. Расшифрование идентично: нужно XOR'ить шифртекст тем же ключом, чтобы восстановить исходный текст. Это работает, потому что XOR — это собственная обратная операция: (a XOR k) XOR k = a. Потоковые шифры и режимы блочных шифров вроде CTR и OFB используют это свойство, превращая блочный шифр в систему на основе ключевого потока.
Калькулятор XOR объединяет все три варианта — булев, двоичный и побитовый — в одном месте. Введите значения, выберите нужный режим и при желании включите таблицу истинности или пошаговый разбор, чтобы точно понять, как получается результат.
Примеры калькулятора XOR
Типичные операции XOR в булевом, двоичном и побитовом режимах на реальных значениях.
| Ввод | Результат | Пояснение |
|---|---|---|
| Булев: true XOR false | true | Входы различаются, поэтому XOR возвращает true. 1 XOR 0 = 1. |
| Булев: true XOR true | false | Оба входа одинаковы, поэтому XOR возвращает false. 1 XOR 1 = 0. |
| Двоичный: 1010 XOR 1100 | 0110 | Побитовый XOR: 1^1=0, 0^1=1, 1^0=1, 0^0=0. Результат — 0110 (десятичное 6). |
| Побитовый: 12 XOR 10 | 6 | 12 в двоичном виде — 1100, 10 — 1010. XOR дает 0110 = 6 в десятичном виде. |
Как пользоваться калькулятором XOR
- Выберите тип операции: Булев для true/false, Двоичный для битовых последовательностей или Побитовый для десятичных целых.
- Введите первое значение (A) в подходящем формате — 0/1/true/false для булевого режима, битовую строку вроде 1010 для двоичного, либо десятичное целое для побитового.
- Введите второе значение (B) в том же формате, что и первое.
- При желании включите Показать таблицу истинности, чтобы увидеть все четыре комбинации входов, или Показать шаги, чтобы посмотреть XOR по битам.
- Нажмите «Вычислить XOR», чтобы получить результат. Нажмите «Сбросить», чтобы очистить все поля и начать заново.
FAQ по калькулятору XOR
Что означает XOR?
XOR означает Exclusive OR, то есть «исключающее ИЛИ». Это логическая операция, которая возвращает true (1), когда истинно ровно одно из двух значений, и false (0), когда оба значения одинаковы. Слово «исключающее» отличает XOR от обычного OR, которое тоже возвращает true, если оба значения истинны.
Чем XOR отличается от OR?
Обычное OR возвращает true, если истинно одно или оба значения. XOR возвращает true только тогда, когда одно значение истинно, а другое ложно — оно исключает случай, когда оба значения истинны. Строки 0 OR 0 = 0 и 1 OR 1 = 1 одинаковы; разница появляется в 1 XOR 1, которое равно 0, тогда как 1 OR 1 = 1.
Почему XOR важен в криптографии?
XOR — это собственная обратная операция: (a XOR k) XOR k = a для любых a и k. Это значит, что можно шифровать, XOR'я с ключом, и расшифровывать, XOR'я с тем же ключом еще раз. Одноразовый блокнот, единственный теоретически неуязвимый шифр, полностью основан на XOR. Потоковые шифры и многие режимы блочных шифров тоже используют XOR для смешивания ключевого материала с открытым текстом.
Как выполнять XOR двоичных чисел разной длины?
Дополните слева более короткую последовательность нулями, чтобы обе стали одинаковой длины, а затем XOR'ьте каждую соответствующую пару битов. Например, 110 XOR 1010 превращается в 0110 XOR 1010 = 1100. Этот калькулятор делает дополнение нулями автоматически.
Какое практическое применение у побитового XOR в программировании?
Побитовый XOR часто используют, чтобы обменять два значения без временной переменной: a ^= b; b ^= a; a ^= b;. Он также помогает переключать отдельные биты в флагах, находить единственный неповторяющийся элемент в массиве (если XOR'ить все элементы, пары взаимно уничтожаются до 0) и быстро вычислять контрольные суммы и смешивание хэшей.
Можно ли использовать XOR более чем для двух входов?
Да. Многовходовый XOR — это просто последовательный попарный XOR. Результат равен 1 (true), когда количество единиц нечётное, и 0 (false), когда оно чётное. Это свойство используется в расчёте паритета RAID-5, где паритет нескольких дисков данных — это XOR всех данных.