Java:将位字符串转换为字节[]
Posted
技术标签:
【中文标题】Java:将位字符串转换为字节[]【英文标题】:Java: Convert bit string to byte[] 【发布时间】:2018-12-28 19:02:32 【问题描述】:我想将一个位串写入一个字节数组,使字节数组字面上包含该位串
我有一个值为“10000110”的字符串,我想将其转换为长度为 5 的字节数组。我希望生成的字节数组准确存储此位字符串,因此对于 i=0,code_word_array[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] 对于 i=0,1,2,4 为 0,对于 i=3 为 -122。为什么这个值没有存储在最后一个字节?
【问题讨论】:
【参考方案1】:您的代码中没有任何内容表明该值需要存储在最后一个字节中。由于 ByteBuffer 默认使用大端,所以值在第 4 个字节。
我只会使用一个字节[]
byte[] code_word_array = new byte[5];
code_word_array[4] = (byte) Integer.parseInt("10000110", 2);
或
code_word_array[4] = 0b10000110;
【讨论】:
以上是关于Java:将位字符串转换为字节[]的主要内容,如果未能解决你的问题,请参考以下文章