Java: 将位串转换成byte[]

Java: Convert bit string to byte[]

我想将一个位串写入字节数组,这样字节数组字面上包含位串

我有一个值为“10000110”的字符串,我想将其转换为长度为 5 的字节数组。我希望生成的字节数组恰好存储这个位串,所以 code_word_array[i]对于 i=0,1,2,3 为 0,对于 i = 4

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

我从这段代码中得到的是 code_word_array[i] 对于 i=0,1,2,4 是 0,对于 i=3 是 -122。为什么这个值没有存储在最后一个字节?

您的代码中没有任何内容表明值需要存储在最后一个字节中。由于 ByteBuffer 默认使用 big endian,因此该值位于第 4 个字节。

我只用一个字节[]

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

code_word_array[4] = 0b10000110;