Pessoal estou estudando sobre Deslocamento de Bits, e fiz o seguinte código
public class Projeto {
public static void main(String[] args) {
int x = -50;
System.out.println(x >> 1);
System.out.println(x >> 2);
System.out.println(x >> 3);
}
}
E obtive o seguinte resultado, pórem não consegui entender porque estes resultados
Resultado
-25
-13
-7
Representação em bits
Número -50 (Estou desconsiderando o sinal, que está no primeiro bit)
32 16 8 4 2 1
1 1 0 0 1 0
Número -25
32 16 8 4 2 1
1 1 0 0 1 (0) Saiu fora
Número -13
32 16 8 4 2 1
1 1 0 0 (1 0) Saiu fora
Número -7
32 16 8 4 2 1
1 1 0 (0 1 0) Saiu fora
Contando o que sobrou o resultado seria (-25, -12 e -6), teoricamente somente o -25 está correto.
Como o programa chegou em -13 e -7
Att.