> Tô estudando Java há 3 semanas, agora tô na parte de operadores bit-a-bit > suponha este nº 39 > em binário ele fica: 100111 não é isso ? > para transformar em negativo ele fica: 011000 e acressento 1 no final > ficando: 0110001
na verdade fica 11111111111111111111111111011001 (equivale a -39), sendo 39: 00000000000000000000000000100111 Números negativos sao representados como complemento de 2. Complemento de 2 seria o complemento de 1, acrescido de uma unidade. Exemplificando: O numero 39 representado como int (32 bits): 00000000000000000000000000100111 complemento de 1 (inverte os numeros, 1 vira 0 e vice-versa): 11111111111111111111111111011000 complemento de 2 (soma 1 unidade) 11111111111111111111111111011001 > Só que eu cheguei nessa parte :: > >> deslocamento a direita > << deslocamento a esquerda > >>> deslocamento a direita + valor a ser definido Explicando com exemplos 39 >> 2 (desloca o numero 39, 2 bits para direita = 00000000000000000000000000001001, ou 9) 39 << 1 (desloca 1 bit para esquerda, 00000000000000000000000001001110, ou 78) o operador >>> so diferencia do >> em numeros negativos. ele efetua um deslocamento sem sinal: -39 >> 1 (resulta em 11111111111111111111111111101100, ou -20) -39 >>> 1 (resulta em 01111111111111111111111111101100, ou 2147483628) Deslocamento de bits é bastante utilizado em programação de baixo nível. Para vc q quer trabalhar com banco de dados não é tão interessante (mas vale a pena dar uma olhada, p qdo precisar) Abraços, Douglas Drummond ------------------------------ 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] -------------------------------------------------------------------------