Python 3 - Ejemplo de operadores bit a bit
Los siguientes operadores Bitwise son 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/python3
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
print ('a=',a,':',bin(a),'b=',b,':',bin(b))
c = 0
c = a & b; # 12 = 0000 1100
print ("result of AND is ", c,':',bin(c))
c = a | b; # 61 = 0011 1101
print ("result of OR is ", c,':',bin(c))
c = a ^ b; # 49 = 0011 0001
print ("result of EXOR is ", c,':',bin(c))
c = ~a; # -61 = 1100 0011
print ("result of COMPLEMENT is ", c,':',bin(c))
c = a << 2; # 240 = 1111 0000
print ("result of LEFT SHIFT is ", c,':',bin(c))
c = a >> 2; # 15 = 0000 1111
print ("result of RIGHT SHIFT is ", c,':',bin(c))
Salida
Cuando ejecuta el programa anterior, produce el siguiente resultado:
a = 60 : 0b111100 b = 13 : 0b1101
result of AND is 12 : 0b1100
result of OR is 61 : 0b111101
result of EXOR is 49 : 0b110001
result of COMPLEMENT is -61 : -0b111101
result of LEFT SHIFT is 240 : 0b11110000
result of RIGHT SHIFT is 15 : 0b111