Побитовые операторы в Python работают с битами и выполняют побитовую операцию. Допустим, если a = 60; и b = 13; в двоичном формате их значения будут 0011 1100 и 0000 1101 соответственно. В следующей таблице перечислены побитовые операторы, поддерживаемые языком Python, с примером каждого из них, мы используем две, указанные выше, переменные (a и b) в качестве операндов:

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a = 1100 0011

В языке Python поддерживаются следующие побитовые операторы:

Оператор Описание Пример
& Двоичное AND Оператор копирует бит в результат, если он существует в обоих операндах. (a&b) (означает 0000 1100)
| Двоичное OR Он копирует бит, если он существует в любом из операндов. (a | b) = 61 (означает 0011 1101)
^ Двоичный XOR Он копирует бит, если он установлен в одном операнде, но не в обоих. (a^b) = 49 (означает 0011 0001)
~ Двоичное дополнение Он унарный и имеет эффект «переворачивания» битов. (~a) = -61 (означает 1100 0011 в форме дополнения до 2 из-за двоичного числа со знаком.
<< Двоичный сдвиг влево Значение левого операнда сдвигается влево на количество битов, указанное правым операндом. a << 2 = 240 (означает 1111 0000)
>> Двоичный сдвиг вправо Значение левого операнда перемещается вправо на количество бит, указанное правым операндом. a>>2 = 15 (означает 0000 1111)

Пример

#!/usr/bin/python
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print "Строка 1 - Значение c равно ", c
c = a | b; # 61 = 0011 1101
print "Строка 2 - Значение c равно ", c
c = a ^ b; # 49 = 0011 0001
print "Строка 3 - Значение c равно ", c
c = ~a; # -61 = 1100 0011
print "Строка 4 - Значение c равно ", c
c = a << 2; # 240 = 1111 0000
print "Строка 5 - Значение c равно ", c
c = a >> 2; # 15 = 0000 1111
print "Строка 6 - Значение c равно ", c

Когда вы выполните вышеуказанную программу, она даст следующий результат:

Строка 1 - Значение c равно 12
Строка 2 - Значение c равно 61
Строка 3 - Значение c равно 49
Строка 4 - Значение c равно -61
Строка 5 - Значение c равно 240
Строка 6 - Значение c равно 15

Оглавление