1. Operadores de Deslocamento de Bits
- <<: Deslocamento para a esquerda.
- >>: Deslocamento para a direita.
- >>>: Deslocamento para a direita sem sinal (com preenchimento de zero).
2. Sintaxe Geral dos Operadores de Deslocamento
value << num-bits: Desloca os bits de value para a esquerda.
value >> num-bits: Desloca os bits de value para a direita, preservando o bit de sinal.
value >>> num-bits: Desloca os bits de value para a direita, inserindo zeros à esquerda.
3. Deslocamento para a Esquerda
- Cada deslocamento para a esquerda faz todos os bits do valor serem deslocados uma posição para a esquerda.
- Um bit 0 é inserido à direita.
- Efeito: Multiplicação do valor por 2 a cada deslocamento.
4. Deslocamento para a Direita
- Cada deslocamento para a direita move todos os bits uma posição para a direita.
- O bit de sinal é preservado: 0 para valores positivos e 1 para valores negativos.
- Efeito: Divisão do valor por 2 a cada deslocamento, com arredondamento para baixo.
5. Deslocamento para a Direita Sem Sinal (>>>)
- Sem preservação do bit de sinal; insere 0 à esquerda.
- Utilizado em padrões de bits onde o valor é tratado como um número sem sinal.
6. Deslocamento Não é Rotatório
- Bits deslocados para fora são perdidos.
- O deslocamento não permite a recuperação de bits deslocados para fora.
Exemplo:
De Deslocamento para a Esquerda e Direita
*ShiftDemo *
Cuidados ao Deslocar Valores byte e short
- Java promove automaticamente byte e short para int ao avaliar uma expressão.
Exemplo:
- Deslocando para a direita um valor byte negativo: ao ser promovido a int, os bits de ordem superior são preenchidos com 1.
- No deslocamento para a direita com preenchimento de zeros (>>>), isso pode causar problemas, já que os 24 bits superiores serão 1 antes que zeros comecem a aparecer.
Atribuições Abreviadas com Operadores Bitwise
- Todos os operadores bitwise binários têm uma forma abreviada que combina uma atribuição com a operação bitwise.
Exemplo
x = x ^ 127;
x ^= 127;
Top comments (0)