eu vi em uma apostila aqui os operadores
>>
e
<<
pra que servem?
eu vi em uma apostila aqui os operadores
>>
e
<<
pra que servem?
Olá
Cara, dá uma procurada sobre operadores bit-a-bit. Tem bastante coisa ai no fórum.
Att,
Marck
valeu galera!!! valeu mesmo
Bom dia!
Esse operadores são deslocadores de bits (texto extraído de http://www.javafree.org/javabb/viewtopic.jbb?t=6944):
Deslocamento a direita com sinal ( >> )
int x = 16;
x = x >> 2;
A variável x estará armazenando ao final da linha de código anterior o valor 4 ! O que o código anterior faz é simplesmente descolar dois bits para a direita, assim temos:
x antes do deslocamento
0000 0000 0000 0000 0000 0000 0001 0000 (base 2)
16 (base 10)
x depois do deslocamento
0000 0000 0000 0000 0000 0000 0000 0100 (base 2)
4 (base 10)
O sinal sempre será mantido com esse operador. Um regra bem simples é que quando se desloca à direita é o mesmo que aplicar a seguinte regra matemática:
Para o caso anterior:
Fórmula: 16 dividido por 2 elevado a x (onde x é a quantidade de bits a deslocar)
Deslocamento a esquerda com sinal ( << )
int x = 16;
x = x << 2;
x antes do deslocamento
0000 0000 0000 0000 0000 0000 0001 0000 (base 2)
16 (base 10)
x depois do deslocamento
0000 0000 0000 0000 0000 0000 0100 0000 (base 2)
64 (base 10)
Outra regrinha que você já deve ter deduzido é:
Fórmula: 16 multiplicado por 2 elevado a x (onde x é a quantidade de bits a deslocar)
Observe o comportamento em caso de número negativos:
int x = -200;
x <<= 3;
O resultado de x será: -1600
Note que o sinal é mantido, observe o deslocamento dos bits:
1000 0000 0000 0000 0000 0000 1100 1000 equivale a -200
Após o deslocamento:
1000 0000 0000 0000 0000 0110 0100 0000 equivale a -1600