Поведение беззнакового правого сдвига, примененного к байтовой переменной

Рассмотрим следующий фрагмент кода 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 как?

Ответы на вопрос(6)

Ваш ответ на вопрос