Почему байт печатается в разных размерах как битовый массив - PullRequest
0 голосов
/ 07 октября 2018

Я хотел напечатать свой байт в виде строки битов.Я нашел способ сделать это

String s = String.format("%8s", Integer.toBinaryString(headerArr[bytenumber])).replace(' ', '0');

System.out.println(s);

Но я получаю очень странные результаты:

11111111111111111111111111111111
00001111
11111111111111111111111111111110
00000111
11111111111111111111111111111100
00000011
11111111111111111111111111111000
00000001
11111111111111111111111111110000
11111111111111111111111111111111
11111111111111111111111111100000
01111111
11111111111111111111111111000000
00111111
11111111111111111111111110000000
00011111
00001111
00001110
00000110
00000100

Как я могу получить различные представления битовых строк?

1 Ответ

0 голосов
/ 07 октября 2018

В документе Integer.toBinaryString указано

Целочисленное значение без знака является аргументом плюс 2 ^ 32, если аргумент отрицательный

Используйте вместо

Integer.toBinaryString(headerArr[bytenumber] & 0xff);

String.format("%8s", s) никогда не сокращает строку s.Пробелы добавляются только в том случае, если s содержит менее 8 символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...