XOR в Python

XOR в Python: что это и как использовать

XOR (исключающее ИЛИ) — это логическая операция, которая возвращает True, если число входных значений, равных True, нечетно, и False в противном случае. В Python XOR выполняется с помощью оператора ^.

Булевы операции 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 также можно использовать для выполнения бинарных операций над числами. В этом случае операция XOR применяется к каждому биту чисел.

Пример:

print(10 ^ 4)  

#14

Здесь число 10 представлено в двоичном виде как 1010, а число 4 как 0100. Результат операции XOR — это 1110, что равно 14 в десятичной системе.

Применения XOR

Оператор 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, который имеет множество применений, начиная от выполнения булевых операций и заканчивая решением сложных проблем. Он предлагает эффективный и элегантный способ решения многих типов задач.

Содержание: