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