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

Рассмотрим следующий фрагмент вывода java-кода

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

:

c=0xff
d=0xff

ожидаемый результат:

c=0x0f

как? как b в двоичном формате 1111 0001 после сдвига вправо без знака 0000 1111 отсюда 0x0f , но почему это 0xff как?

23
задан Jon 11 July 2017 в 16:31
поделиться