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

Responder a