Поразрядные операции с числами в Python /9

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

 

Лого

Spartacus_85 [Admin]

Администратор сайта — это специалист, который отвечает за техническую поддержку и бесперебойную работу веб-ресурса.



0 Комментарий(я)

Зарегистрируйтесь чтобы оставить комментарий