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:将位字符串转换为字节[]的主要内容,如果未能解决你的问题,请参考以下文章

在java中将字符串转换为字节[重复]

将字节数组转换为字符串(Java)

mysqli将位和整数作为字符串返回

java 将字节转换为字符串

在java中将字符串数组元素转换为字节数组[重复]

在Java中将字符串转换为字节[重复]