Objetivos
Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.
- Setando bits
- Resetando bits
- Testando bits
Invertendo bits
Recuperando bits
Setando bytes
Resetando bytes
Recuperando bytes
Invertendo ordem de bytes
Percorrendo bits
Manipulando bits e bytes
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
Histórico de atualizações
- 19/05/2026 - revisão 1 - Versão inicial: 'Setando bits', 'Resetando bits' e 'Testando bits'
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.