Dúvida com deslocamento de bits

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.

Na verdade vc está confundindo… (it is a common mistake=] )

O array de bit de um número negativo, por exemplo o -50, fica assim:
11111111111111111111111111001110

faça o seguinte, para vc entender, deixe seu código assim:

public class Projeto {     
       
     public static void main(String[] args) {    
       
         int x = -50;
         
         System.out.println(-50);
         System.out.println(Integer.toBinaryString(x));
         System.out.println(x >> 1);
         System.out.println(Integer.toBinaryString(x >> 1));
         System.out.println(x >> 2);
         System.out.println(Integer.toBinaryString(x >> 2));
         System.out.println(x >> 3);
         System.out.println(Integer.toBinaryString(x >> 3));
     }
 } 

Falou.