【问题标题】:Java: Convert bit string to byte[]Java:将位字符串转换为字节[]
【发布时间】: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。为什么这个值没有存储在最后一个字节?

【问题讨论】:

    标签: java arrays string bytebuffer


    【解决方案1】:

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

    我只会使用一个字节[]

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

    code_word_array[4] = 0b10000110;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2011-08-06
      • 2013-12-19
      • 2011-07-26
      • 1970-01-01
      相关资源
      最近更新 更多