4. Operadores de deslocamento (>>, <<, >>>)
Java provê operadores para a manipulação dos bits em variáveis de tipo
numérico: o deslocamento aritmético >> e o deslocamento lógico >>>.
O operador de deslocamento aritmético >> executa um deslocamento de um bit
para a direita de um número (na prática, o primeiro argumento desse operador
é dividido por dois 'n' vezes – onde n é o segundo argumento do operador):
8 >> 2 = 2
128 >> 1 = 64
256 >> 4 = 16
* Notação em complemento de dois: o operador >> mantém o sinal do bit mais
significativo durante o deslocamento.
O operador de deslocamento lógico >>> executa um deslocamento no padrão dos
bits ao invés do significado aritmético de um valor numérico. Esse operador
sempre adiciona o valor 0 ao bit mais significativo:
1010 ... >> 2 = 111010 ...
1010 ... >>> 2 = 001010 ...
* Os operadores de deslocamento reduzem seus operandos à direita módulo 32
para um valor do tipo int e módulo 64 para um tipo long. Dessa forma, para
qualquer valor do tipo int:
int x à x >>> 32 = x
fic ligado: o operador de deslocamento lógico >>> só pode ser aplicado a
valores inteiros, e não é efetivo em valores int e long. Se for aplicado a
valor short ou byte, o valor será promovido a um int antes da aplicação do
operador. Por isso, um deslocamento sem sinal acaba se tornando um
deslocamento com sinal.
http://www.fic.br/~gaucho/SOO-I/aulas/aula4.htm
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------