Ejemplo de operadores bit a bit de Python

Existen los siguientes operadores Bitwise compatibles con el lenguaje Python.

Operador Descripción Ejemplo
& Binario Y El operador copia un poco al resultado si existe en ambos operandos (a & b) (significa 0000 1100)
| OR binario Copia un poco si existe en cualquier operando. (a | b) = 61 (significa 0011 1101)
^ XOR binario Copia el bit si está configurado en un operando pero no en ambos. (a ^ b) = 49 (significa 0011 0001)
~ Complemento de los binarios Es unario y tiene el efecto de "voltear" bits. (~ a) = -61 (significa 1100 0011 en forma de complemento a 2 debido a un número binario con signo.
<< Desplazamiento binario a la izquierda El valor de los operandos de la izquierda se mueve a la izquierda el número de bits especificado por el operando de la derecha. a << 2 = 240 (significa 1111 0000)
>> Desplazamiento binario a la derecha El valor de los operandos de la izquierda se mueve hacia la derecha el número de bits especificado por el operando de la derecha. a >> 2 = 15 (significa 0000 1111)

Ejemplo

#!/usr/bin/python

a = 60            # 60 = 0011 1100 
b = 13            # 13 = 0000 1101 
c = 0

c = a & b;        # 12 = 0000 1100
print "Line 1 - Value of c is ", c

c = a | b;        # 61 = 0011 1101 
print "Line 2 - Value of c is ", c

c = a ^ b;        # 49 = 0011 0001
print "Line 3 - Value of c is ", c

c = ~a;           # -61 = 1100 0011
print "Line 4 - Value of c is ", c

c = a << 2;       # 240 = 1111 0000
print "Line 5 - Value of c is ", c

c = a >> 2;       # 15 = 0000 1111
print "Line 6 - Value of c is ", c

Cuando ejecuta el programa anterior, produce el siguiente resultado:

Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15