Re: [java-list] Uso de Shift Operator
O java trabalha com o resto da divisão do número que você passa por 32(no caso de int). Ou seja, 132 é a mesma coisa que 10, e 133 é a mesma coisa que 11. Para o shift e é a mesma coisa. Clayton Eu quero tirar uma duvida sobre esse assunto: quando a gente usa 1 31, obtemos: 0001 = 1 1000 = 1 31 Teoricamente, quando eu fizesse 1 32 eu deveria obter: = 0 Mas na prática eu obtenho: 0001 = 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 java-list- [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 java-list- [EMAIL PROTECTED] --- -- __ Quer ter seu próprio endereço na Internet? Garanta já o seu e ainda ganhe cinco e-mails personalizados. DomíniosBOL - http://dominios.bol.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] -
RES: [java-list] Uso de Shift Operator
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: 0001 = 1 1000 = 1 31 Teoricamente, quando eu fizesse 1 32 eu deveria obter: = 0 Mas na prática eu obtenho: 0001 = 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] -
Re: [java-list] Uso de Shift Operator
É o seguinte, você está tentando fazer o deslocamento maior ou igual o número máximo de bits que cabem num tipo int (que é sobre o qual os bits são deslocados). Quando isso ocorre, a linguagem Java não realizará o deslocamento na qtde de bits solicitada, e sim, o resto da divisão desse valor pelo número a ser deslocado. No seu caso, 31%1 retorna 0, ou seja, é como se você solicitasse 1 0. Se fosse 1 33, por exemplo, você obteria 0010. Questão de certificação! Rodrigo Miguel Business Intelligence Logocenter S.A. - Joinville/SC - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, April 16, 2002 2:40 PM Subject: Re: [java-list] Uso de Shift Operator Eu quero tirar uma duvida sobre esse assunto: quando a gente usa 1 31, obtemos: 0001 = 1 1000 = 1 31 Teoricamente, quando eu fizesse 1 32 eu deveria obter: = 0 Mas na prática eu obtenho: 0001 = 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] -
Re: [java-list] Uso de Shift Operator
Eu quero tirar uma duvida sobre esse assunto: quando a gente usa 1 31, obtemos: 0001 = 1 1000 = 1 31 Teoricamente, quando eu fizesse 1 32 eu deveria obter: = 0 Mas na prática eu obtenho: 0001 = 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] -
[java-list] Uso de Shift Operator
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] -
Re: [java-list] Uso de Shift Operator
Jacob Quando vc fizer 48 3 significa que vc esta dividindo 64 por 8 ( 2 elevado na 3) = 48 3 = 6 Quando vc fizer 2 4 (2 / 16) = ZERO Quando vc fizer 24 esta fazendo 2 * 16 = 32 Se vc fizer 16 2 eh a mesma coisa que 16 2 []s Leandro Constantino Jacob [EMAIL PROTECTED] on 15/04/2002 10:15:47 Please respond to [EMAIL PROTECTED] To: [EMAIL PROTECTED] [EMAIL PROTECTED] cc: Subject: [java-list] Uso de Shift Operator 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] - -- 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] -