A razão para isso é que o operador shift em Java é interpretado pelo
compilador da uma maneira particular. Suponha que a sintaxe padrão para
deslocamento de bits à esquerda seja a seguinte:
          num << desl 
    Tal comando na verdade se transforma em:
          num << (desl mod 32), no caso do operando num ser do tipo int
          num << (desl mod 64), no caso do operando num ser do tipo long
    Ex.:
          1 << 32
          1 << (32 mod 32)
          1 << 0 = 1, ou seja, não houve descolamento
    Essa "redução" do operando à direita se deve ao fato da própria
limitação da operação de deslocamento em relação ao tamanho dos tipos
envolvidos. Pra quem já programou em assembly Intel (8088 em diante), com
certeza já conheceu as instruções de "rotate" de bits (mnemônicos ROL, ROR,
RCL e RCR). Pois é, se você apresentar Java para um programador assembly,
ele vai dizer que Java na verdade não tem operador de deslocamento (shift)
de bits, apenas operadores de rotação de bits...


Rosfran Lins Borges
Analista de Sistemas - NDS
[EMAIL PROTECTED]
Fóton® Informática e Serviços
Fone: (61) 328 5060 R.: 204


-----Mensagem original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] 
Enviada em: terça-feira, 16 de abril de 2002 14:41
Para: [EMAIL PROTECTED]
Assunto: Re: [java-list] Uso de Shift Operator

Eu quero tirar uma duvida sobre esse assunto:

quando a gente usa 1 << 31, obtemos:

00000000 00000000 00000000 00000001 = 1
10000000 00000000 00000000 00000000 = 1 << 31

Teoricamente, quando eu fizesse 1 << 32 eu deveria obter:

00000000 00000000 00000000 00000000 = 0

Mas na prática eu obtenho:

00000000 00000000 00000000 00000001 = 1

Alguem sabe me dizer o pq?


-- Mensagem original --

>Colegas da lista,
>
>Alguém poderia fornecer exemplos práticos de uso dos Shift Operators (
><< >> >>> ) ?
>
>Grato,
>
>Jacob
>
>
>------------------------------ 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]
>
>-------------------------------------------------------------------------
>
>



------------------------------------------
Use o melhor sistema de busca da Internet
Radar UOL - http://www.radaruol.com.br




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

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