Operadores de deslocamento: &lt&lt, &gt&gt, &gt&gt&gt

3 respostas
T

Eu estou com uma duvida sobre os operadores de deslocamento.

Gostaria de saber como que deve ser feito o raciocinio para descobrir um deslocamento quando o operando da direita for negativo

Ex: o resultado de 8 &lt&lt -1 é 0.

3 Respostas

rissato

Se vc está estudando pra SCJP5, talvez te interesse saber que esse assunto foi retirado da prova. :slight_smile:

T

De qualquer maneira, se você quer saber o que ocorre quando o parâmetro é negativo, você precisa fazer o seguinte:

8 &lt&lt -1

8 é uma constante do tipo "int", portanto tem 32 bits.
-1 é em binário 1111.1111.1111.1111.1111.1111.1111.1111.
Na hora de efetuar o deslocamento, consideram-se então apenas os últimos 5 bits, pois o deslocamento deve ser normalizado para um número positivo entre 0 e 31 (que é em binário 11111, ou seja, 5 bits). Portanto o número 8 será deslocado de 11111 (em binário) bits para a esquerda.

8 &lt&lt -1 equivale então a 8 &lt&lt 31, ou seja, 0.

T

To estudando pra 1.4
Já estou quase fazendo a prova e começar os estudos pra Java 5 vai dar muito trampo…

De qualquer forma, valeu pela ajuda pessoal

Abraço

Criado 5 de dezembro de 2006
Ultima resposta 5 de dez. de 2006
Respostas 3
Participantes 3