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;
我想将一个位串写入字节数组,这样字节数组字面上包含位串
我有一个值为“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;