Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Setando bits
  2. Resetando bits
  3. Testando bits
  4. Invertendo bits
  5. Recuperando bits
  6. Setando bytes
  7. Resetando bytes
  8. Recuperando bytes
  9. Invertendo ordem de bytes
  10. Percorrendo bits

A manipulação em baixo nível de bits e bytes é comum em aplicações como: editores hexadecimais, assemblers, disassemblers, interpretadores de linguagens bytecode, ferramentas debuggers, emuladores e outros.

Neste tópico, vamos aprender o básico sobre a manipulação de bits como: resetar bits, setar bits, inverter bits e deslocar bits. Isso será feito utilizando os operadores bitwise vistos em Python: Básico > Operadores > Bitwise.

O set de um ou mais bits é feito utilizando o operador (|). Uma máscara é utilizada para informar quais bits devem ser mantidos(0) e quais devem ser setados(1).

Tabela:
1 | 1 = 1
1 | 0 = 1
0 | 0 = 0
Sintaxe:
nome_variavel | máscara

Assim, ao aplicar o operador acima temos apenas os bits necessários setados em suas posições:

Exemplo 1
variavel = 0x80
res = variavel | 0b00011000 #18h
print(f"{res:02x}") #98h
Saída
98

O reset de um ou mais bits é feito utilizando o operador (&). Uma máscara é utilizada para informar quais bits devem ser mantidos(1) e quais devem ser resetados(0).

Tabela:
1 & 1 = 1
1 & 0 = 0
0 & 0 = 0
Sintaxe:
nome_variavel & máscara

Assim, ao aplicar o operador acima temos apenas os bits necessários resetados em suas posições:

Exemplo 2
variavel = 0xff
res = variavel & 0b00011000 #18h
print(f"{res:02x}") #18
Saída
18

Como consequência, o operador (&) também pode ser utilizado indiretamente para testar bits. Modificando o exemplo acima, podemos adicionar o comando if ou match-case para verificar o valor dos bits mantidos:

Exemplo 3: if
variavel = 0xff

if (variavel & 0b00011000) == 0x18:
    print("OK") #18
else:
    print("NOK")
Saída
OK
  1. 19/05/2026 - revisão 1 - Versão inicial: 'Setando bits', 'Resetando bits' e 'Testando bits'