Rozważmy następujący wycinek kodu javaZachowanie unsigned prawej przesunięcie zastosowane do bajt zmiennej
byte b=(byte) 0xf1;
byte c=(byte)(b>>4);
byte d=(byte) (b>>>4);
wyjściowa:
c=0xff
d=0xff
oczekiwany wynik:
c=0x0f
jak? jako b w binarnym 1111 0001
po unsigned right shift 0000 1111
stąd 0x0f
, ale dlaczego to jest 0xff
jak?
Być może bajt to pierwszy znak rozszerzony na int – CodesInChaos