Operadores de Deslocamento

Bom, estou estudando que nem um camelo pra tirar essa certificação e surgiu mais uma dúvida:
será que alguem pode me explicar direitinho como funcionam os operadores de deslocamento?!
eu tenho a apostila da sun e da globalcode e nem assim consegui entender.
Na verdade eu entendi, mas eu queria uma lógica, uma regra, pra conseguir resolver mais rápido as questões.

  Valeu!

Tem uma regra assim:

8>>2 , o resultado é 2. pois você divide 8 por 2 elevado a 2
Ex: 8/2*2.
8 = 1000. deslocando dois bits para a direita fica 0010, que é 2

8>>3, o resultado é 1. Ex: 8 / 222


8<<2, o resultado é 32, pois com o deslocamento para a esquerda, você multiplica 8 por 2 elevado ao operando da direita, que nesse caso é o 2.
Ex: 8 * 2 * 2.
8=1000, que deslocando 2 bits para a esquerda fica 0010 0000, que é 32.

8<<3 , o resultado é 64.
Ex: 8 * 2 * 2 * 2.

Espero ter ajudado.

valeu! eu acabei chegando nisso mesmo…
mas ainda tinha esperança de ter alguma regrinha mais fácil…

valeu!

Colega tuledux, valeu pela explicação. Eu tinha aprendido essa regra de uma outra forma e vejo que dessa maneira fica bem mais facil e rapido em resolver.

Agora vc teria uma exemplo simples de troca com numeros negativos e outro com o operador >>>?

Grato e um abraço,

Olá,

a revista Mundo Java deste mes traz um artigo exatamente sobre isso.
Vale a pena conferir!

Abraços!