Java: преобразовать битовую строку в байт [] - PullRequest
0 голосов
/ 28 декабря 2018

Я хочу записать битовую строку в байтовый массив так, чтобы байтовый массив буквально содержал цепочку битов

У меня есть строка со значением "10000110", и я хочу преобразовать ее в байтовый массив с длиной5. Я хочу, чтобы результирующий байтовый массив сохранял именно эту битовую строку, поэтому code_word_array [i] равен 0 для i = 0,1,2,3 и «10000110» для i = 4

byte[] code_word_array = ByteBuffer.allocate(5)
        .putInt(Integer.parseInt("10000110", 2))
        .array();

ЧтоЯ получаю с этим кодом code_word_array [i] 0 для i = 0,1,2,4 и -122 для i = 3.Почему это значение не сохраняется в последнем байте?

1 Ответ

0 голосов
/ 28 декабря 2018

Нет ничего в вашем коде, чтобы сказать, что значение должно быть сохранено в последнем байте.Поскольку ByteBuffer по умолчанию использует порядковый номер с большим порядковым номером, значение находится в 4-м байте.

Я бы просто использовал байт []

byte[] code_word_array = new byte[5];
code_word_array[4] = (byte) Integer.parseInt("10000110", 2);

или

code_word_array[4] = 0b10000110;
...