XOR (исключающее ИЛИ) — это логическая операция, которая возвращает True
, если число входных значений, равных True
, нечетно, и False
в противном случае. В Python XOR выполняется с помощью оператора ^
.
В случае булевых значений XOR работает следующим образом:
True ^ True возвращает False
True ^ False возвращает True
False ^ True возвращает True
False ^ False возвращает False
Пример:
print(True ^ True) # выведет False
print(True ^ False) # выведет True
print(False ^ True) # выведет True
print(False ^ False) # выведет False
XOR также можно использовать для выполнения бинарных операций над числами. В этом случае операция XOR применяется к каждому биту чисел.
Пример:
print(10 ^ 4)
#14
Здесь число 10 представлено в двоичном виде как 1010, а число 4 как 0100. Результат операции XOR — это 1110, что равно 14 в десятичной системе.
Оператор XOR имеет множество применений в программировании, включая:
Обмен значениями: с помощью XOR можно обменять значения двух переменных без использования дополнительной переменной.
a = 5
b = 10
a ^= b
b ^= a
a ^= b
print("a:", a) # выведет "a: 10"
print("b:", b) # выведет "b: 5"
Нахождение уникального элемента: XOR можно использовать для нахождения уникального элемента в массиве, где все другие элементы встречаются дважды.
def find_unique(nums):
unique = 0
for num in nums:
unique ^= num
return unique
print(find_unique([1, 2, 3, 2, 1]))
#3
Проверка четности: битовая операция XOR может использоваться для проверки, является ли число четным или нечетным.
def is_even(num):
return num ^ 1 == num + 1
print(is_even(4)) # выведет True
print(is_even(7)) # выведет False
XOR — это мощный инструмент в Python, который имеет множество применений, начиная от выполнения булевых операций и заканчивая решением сложных проблем. Он предлагает эффективный и элегантный способ решения многих типов задач.
Содержание: