Python битовые операции
Битовые операции в Python предоставляют возможность манипулировать отдельными битами в бинарном представлении чисел. В Python доступны следующие битовые операции: побитовое И (&), побитовое ИЛИ (|), побитовое исключающее ИЛИ (^), побитовое отрицание (~), сдвиг влево (<<) и сдвиг вправо (>>).
Начнем с побитового И (&). Операция побитового И применяется к каждой паре битов двух чисел. Результатом будет число, где каждый бит будет равен 1 только в том случае, если оба соответствующих бита в исходных числах равны 1. В противном случае бит будет равен 0. Например:
a = 5 # 101 в двоичной системе
b = 3 # 011 в двоичной системе
result = a & b # 001 в двоичной системе
print(result) # Вывод: 1
В данном примере, побитовое И (&) между числами 5 и 3 дает результат 1, потому что только на месте, где оба числа имеют единички, результат имеет единичку.
Теперь рассмотрим побитовое ИЛИ (|). Операция побитового ИЛИ применяется к каждой паре битов двух чисел. Результатом будет число, где каждый бит равен 1, если хотя бы один из соответствующих битов в исходных числах равен 1. В противном случае бит будет равен 0. Пример:
a = 5 # 101 в двоичной системе
b = 3 # 011 в двоичной системе
result = a | b # 111 в двоичной системе
print(result) # Вывод: 7
В данном примере, побитовое ИЛИ (|) между числами 5 и 3 дает результат 7, так как на каждом месте, где хотя бы одно из чисел имеет единичку, результат также будет единицей.
Побитовое исключающее ИЛИ (^) применяется к каждой паре битов двух чисел. Результатом будет число, где каждый бит равен 1 только в том случае, если биты в исходных числах отличаются. В противном случае бит будет равен 0. Пример:
a = 5 # 101 в двоичной системе
b = 3 # 011 в двоичной системе
result = a ^ b # 110 в двоичной системе
print(result) # Вывод: 6
В данном примере, побитовое исключающее ИЛИ (^) между числами 5 и 3 дает результат 6, так как только на месте, где биты различаются, результат будет единицей.
Побитовое отрицание (~) применяется к каждому биту в числе и меняет его значение на противоположное. Пример:
a = 5 # 101 в двоичной системе
result = ~a # -6 в двоичной системе
print(result) # Вывод: -6
В данном примере, побитовое отрицание (~) числа 5 дает результат -6, так как каждый бит числа 5 меняется на противоположный.
Сдвиг влево (<<) выполняет сдвиг всех битов числа влево на указанное количество позиций. Пример:
a = 5 # 101 в двоичной системе
result = a << 2 # 10100 в двоичной системе
print(result) # Вывод: 20
В данном примере, сдвиг влево (<<) числа 5 на 2 позиции дает результат 20, так как все биты числа сдвигаются влево на 2 позиции.
Сдвиг вправо (>>) выполняет сдвиг всех битов числа вправо на указанное количество позиций. Пример:
a = 5 # 101 в двоичной системе
result = a >> 1 # 10 в двоичной системе
print(result) # Вывод: 2
В данном примере, сдвиг вправо (>>) числа 5 на 1 позицию дает результат 2, так как все биты числа сдвигаются вправо на 1 позицию.
Это основные битовые операции в Python. Они позволяют манипулировать отдельными битами чисел, что может быть полезно во многих различных ситуациях. Например, битовые операции часто используются в алгоритмах сжатия данных или криптографии.