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 << -1 é 0.
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 << -1 é 0.
Se vc está estudando pra SCJP5, talvez te interesse saber que esse assunto foi retirado da prova. 
De qualquer maneira, se você quer saber o que ocorre quando o parâmetro é negativo, você precisa fazer o seguinte:
8 << -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 << -1 equivale então a 8 << 31, ou seja, 0.
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