XOR в Python известен как «exclusive or» — это побитовый оператор, который возвращает 1, когда любой из операндов равен 1, но оба не равны 1 и оба не равны 0.
Как XOR работает в Python?
Exclusive or устанавливает входные биты в 1, если один из аналогичных битов в двух операндах, но не оба, равен 1.
Пример 1: как использовать XOR в Python
Используйте оператор XOR ^ между двумя значениями, чтобы выполнить побитовое исключающее или для их двоичных представлений. Например, при использовании между двумя целыми числами оператор XOR возвращает целое число.
|
1 2 3 |
output = 19 ^ 21 print(output) |
Выход
|
1 |
6 |
Мы использовали оператор XOR между двумя целыми числами. При использовании между двумя целыми числами оператор XOR возвращает целое число.
Пример 2: выполнение XOR для двух логических значений
При выполнении XOR для двух логических значений True рассматривается как 1, а False — как 0. Таким образом, XOR между двумя логическими значениями возвращает логическое значение.
|
1 2 3 |
result = True ^ False print(result) |
Выход
|
1 |
True |
Давайте сравним два ложных значения.
|
1 2 3 |
result = False ^ False print(result) |
|
1 |
Выход
|
1 2 |
False |
Давайте сравним два истинных значения.
|
1 2 3 |
result = True ^ True print(result) |
Выход
|
1 |
False |
Из приведенного выше примера кода видно, что если сравниваются два значения True или False, он возвращает False, но если сравниваются два разных значения, он возвращает True.
Пример 3: замена двух целых чисел с помощью XOR без временной переменной
В Python вы можете использовать оператор XOR(^) для замены двух целых чисел без использования временной переменной. Оператор XOR возвращает число, которое является результатом двоичной операции «исключающее или» над операндами.
Оператор «exclusive or» возвращает значение True, если ровно один из операндов имеет значение True. Если оба операнда имеют значение True или оба имеют значение False, он возвращает False.
|
1 2 3 4 5 6 7 8 9 10 11 |
x = 5 y = 10 print('Before swapping: x =', x, ', y =', y) x = x ^ y # Step 1 y = x ^ y # Step 2 x = x ^ y # Step 3 print('After swapping: x =', x, ', y =', y) |
Выход
|
1 2 |
Before swapping: x = 5 , y = 10 After swapping: x = 10 , y = 5 |
Пример 4: использование XOR с функцией bin()
|
1 2 3 |
result = bin(0b1111 ^ 0b1111) print(result) |
Выход
|
1 |
0b0 |
Давайте посмотрим, как поменять местами целые числа без временной переменной с помощью XOR.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
a = 21 b = 19 print('The value of a is: ', a) print('The value of b is: ', b) a ^= b b ^= a a ^= b print('After swapping: ') print('The value of a is: ', a) print('The value of b is: ', b) |
Выход
|
1 2 3 4 5 |
The value of a is: 21 The value of b is: 19 After swapping: The value of a is: 19 The value of b is: 21 |
|
1 |
В чем разница между XOR и OR?
Основное различие между операторами XOR и OR заключается в том, что XOR возвращает True, если хотя бы один из операндов имеет значение True, тогда как OR возвращает True, если хотя бы один из операндов имеет значение True.
Второе отличие состоит в том, что XOR в Питон — исключающий оператор, а OR — включающий оператор.
