Neste exercício, vamos explorar as operações bit a bit (bitwise) em Python. As operações bit a bit manipulam os bits individuais de números binários, permitindo realizar operações de baixo nível de forma eficiente.
Objetivo:
- Compreender como as operações bit a bit funcionam em binários.
- Realizar as operações entre os números 9 e 23, e verificar os resultados.
Passos:
- Converter os números 9 e 23 para binário.
- Realizar as operações bit a bit.
- Analisar os resultados de cada operação.
1. Conversão de Números para Binário
Primeiro, vamos converter os números 9 e 23 para binário.
- 9 em decimal =
1001em binário - 23 em decimal =
10111em binário
Como os números têm tamanhos diferentes, vamos padronizá-los para 5 bits adicionando zeros à esquerda do número 9:
- 9 em binário =
01001 - 23 em binário =
10111
Agora podemos aplicar as operações bit a bit.
2. Operações Bit a Bit
AND (a & b)
A operação AND retorna 1 apenas quando ambos os bits de a e b forem 1. Caso contrário, retorna 0.
| a (9) | 0 1 0 0 1 |
|---|---|
| b (23) | 1 0 1 1 1 |
| a & b | 0 0 0 0 1 |
Resultado de 9 & 23 = 1 (em decimal)
OR (a | b)
A operação OR retorna 1 quando pelo menos um dos bits de a ou b for 1.
| a (9) | 0 1 0 0 1 |
|---|---|
| b (23) | 1 0 1 1 1 |
| **a | b** |
Resultado de 9 | 23 = 31 (em decimal)
XOR (a ^ b)
A operação XOR retorna 1 quando os bits de a e b são diferentes. Se os bits forem iguais, retorna 0.
| a (9) | 0 1 0 0 1 |
|---|---|
| b (23) | 1 0 1 1 1 |
| a ^ b | 1 1 1 1 0 |
Resultado de 9 ^ 23 = 30 (em decimal)
NOT (~a)
A operação NOT inverte todos os bits de a. Em Python, isso resultará no complemento de 2, ou seja, o número negativo equivalente.
| a (9) | 0 1 0 0 1 |
|---|---|
| ~a (NOT) | 1 0 1 1 0 |
Resultado de ~9 = -10 (em decimal)
Shift Left (a << 1)
O deslocamento para a esquerda move todos os bits de a uma posição para a esquerda, preenchendo com 0 à direita. Isso equivale a multiplicar o número por 2.
| a (9) | 0 1 0 0 1 |
|---|---|
| a << 1 | 1 0 0 1 0 |
Resultado de 9 << 1 = 18 (em decimal)
Shift Right (a >> 1)
O deslocamento para a direita move todos os bits de a uma posição para a direita, descartando o bit mais à direita. Isso equivale a dividir o número por 2.
| a (9) | 0 1 0 0 1 |
|---|---|
| a >> 1 | 0 0 1 0 0 |
Resultado de 9 >> 1 = 4 (em decimal)
3. Resumo dos Resultados
| Operação | Resultado (Binário) | Resultado (Decimal) |
|---|---|---|
| AND (9 & 23) | 00001 | 1 |
| **OR (9 | 23)** | 11111 |
| XOR (9 ^ 23) | 11110 | 30 |
| NOT (~9) | 10110 | -10 |
| Shift Left (9 << 1) | 10010 | 18 |
| Shift Right (9 >> 1) | 00100 | 4 |
4. Conclusão
Neste exercício, exploramos as operações bit a bit AND, OR, XOR, NOT, e as operações de deslocamento (Shift Left e Shift Right) entre os números 9 e 23. Essas operações são fundamentais para a manipulação eficiente de dados em baixo nível e são frequentemente usadas em programação de sistemas e otimização de código.
Reflexão: A compreensão das operações bit a bit é importante quando trabalhamos com algoritmos e estruturas de dados de baixo nível, especialmente em áreas como manipulação de hardware, criptografia, compressão de dados, e programação de sistemas.
Desafio
Tente realizar as operações bit a bit entre outros números, como 5 e 12.
Deixe um comentário
Você precisa fazer o login para publicar um comentário.