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] 
-------------------------------------------------------------------------

Responder a