Exemplo de operadores bit a bit Python
Existem os seguintes operadores Bitwise suportados pela linguagem Python.
Operador | Descrição | Exemplo |
---|---|---|
& Binário E | O operador copia um bit para o resultado se ele existir em ambos os operandos | (a & b) (significa 0000 1100) |
| Binário OU | Ele copia um pouco se existir em qualquer operando. | (a | b) = 61 (significa 0011 1101) |
^ Binário XOR | Ele copia o bit se estiver definido em um operando, mas não em ambos. | (a ^ b) = 49 (significa 0011 0001) |
~ Complemento de Binários | É unário e tem o efeito de 'inverter' bits. | (~ a) = -61 (significa 1100 0011 na forma de complemento de 2 devido a um número binário com sinal. |
<< Deslocamento à esquerda binário | O valor dos operandos à esquerda é movido para a esquerda pelo número de bits especificado pelo operando à direita. | a << 2 = 240 (significa 1111 0000) |
>> Deslocamento Binário à Direita | O valor dos operandos à esquerda é movido para a direita pelo número de bits especificado pelo operando à direita. | a >> 2 = 15 (significa 0000 1111) |
Exemplo
#!/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
Quando você executa o programa acima, ele produz o seguinte 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