Considérese el siguiente recorte de código javaComportamiento de desplazamiento sin signo derecho aplicado a la variable byte
byte b=(byte) 0xf1;
byte c=(byte)(b>>4);
byte d=(byte) (b>>>4);
de salida:
c=0xff
d=0xff
salida esperada:
c=0x0f
cómo? como b en el binario 1111 0001
después del cambio a la derecha sin signo 0000 1111
por lo tanto, 0x0f
pero ¿por qué es 0xff
cómo?
Quizás el byte sea el primer signo extendido a int – CodesInChaos