Поразрядные операции (или побитовые операции) позволяют напрямую работать с отдельными битами чисел. Они широко применяются в низкоуровневом программировании, криптографии, оптимизации кода и других областях, где требуется эффективная обработка данных на уровне битов. В Python поддерживается полный набор поразрядных операций для целых чисел. В этом уроке мы познакомимся с основными видами побитовых операций и приведем примеры их использования.
Основные поразрядные операции
Побитовое И (&)
Возвращает 1 в каждом бите, где оба операнда имеют 1.
x = 5 # 0b0101
y = 3 # 0b0011
result = x & y
print(result) # 1 (0b0001)
Побитовое ИЛИ (|)
Возвращает 1 в каждом бите, где хотя бы один операнд равен 1.
result = x | y
print(result) # 7 (0b0111)
Побитовое исключающее ИЛИ (^)
Возвращает 1 в каждом бите, где операнды различны.
result = x ^ y
print(result) # 6 (0b0110)
Побитовое отрицание (~)
Инвертирует все биты числа.
result = ~x
print(result) # -6 (в двоичном представлении дополнение до двух)
Сдвиг влево (<<)
Сдвигает биты числа влево на указанное количество позиций, эквивалентно умножению на 2 в степени сдвига.
result = x << 1
print(result) # 10 (0b1010)
Сдвиг вправо (>>)
Сдвигает биты числа вправо на указанное количество позиций, эквивалентно целочисленному делению на 2 в степени сдвига.
result = x >> 1
print(result) # 2 (0b0010)
Особенности работы с побитовыми операциями в Python
В Python числа имеют произвольную длину, поэтому операции с отрицательными числами требуют осторожности.
При работе с поразрядными операциями часто используется двоичное представление чисел с помощью функции bin():
print(bin(5)) # '0b101'
Для получения наглядности можно использовать форматирование строк:
print(f"{5:08b}") # '00000101'
Поразрядные операции являются мощным инструментом для работы с данными на уровне битов. Они позволяют выполнять быструю обработку чисел, оптимизировать программы и решать специфические задачи, требующие контроля над отдельными битами. В Python поддержка побитовых операций реализована удобно и интуитивно, что делает их доступными даже для начинающих программистов.
Этот урок является девятым в базовом курсе Python на нашем сайте. В следующих статьях мы продолжим изучать полезные возможности языка и углубляться в более сложные темы.
0 Комментарий(я)
Зарегистрируйтесь чтобы оставить комментарий