Поведение беззнакового правого сдвига, примененного к байтовой переменной
Рассмотрим следующий фрагмент кода Java
byte b=(byte) 0xf1;
byte c=(byte)(b>>4);
byte d=(byte) (b>>>4);
выход:
c=0xff
d=0xff
ожидаемый результат:
c=0x0f
как? как б в двоичном1111 0001
после беззнакового сдвига вправо0000 1111
следовательно0x0f
но почему это0xff
как?