Comportamiento del desplazamiento a la derecha sin signo aplicado a la variable de byte

Considere el siguiente fragmento de código java

byte b=(byte) 0xf1;
byte c=(byte)(b>>4);
byte d=(byte) (b>>>4);

salida:

c=0xff
d=0xff

Rendimiento esperado:

c=0x0f

¿cómo? como b en binario1111 0001 después del desplazamiento a la derecha sin firmar0000 1111 por lo tanto0x0f pero porque es0xff ¿cómo?

Respuestas a la pregunta(6)

Su respuesta a la pregunta