Мне нужно сделать преобразование из 1 байта в целое число, используя &
и |
. Вывод после преобразования должен быть целым числом с этими байтами: (0xFF) (байт) (байт) (байт).
Например:Вход:
00000111
Выход:
11111111000001110000011100000111
Мой код работает, если байт находится в диапазоне [0, 127]
int integer=7;
byte a=(byte)integer;
int b=(0xFF<<24)|(a<<16)|(a<<8)|(a);
System.out.println(Integer.toBinaryString(b));
Если байт находится в диапазоне [-128, -1]
, не работает
ввод:
10000000
Неверный вывод:
11111111111111111111111110000000
Ожидаемый вывод:
11111111100000001000000010000000