gpt4 book ai didi

java - 在Java中将二进制字符串转换为字节数组

转载 作者:行者123 更新时间:2023-12-01 19:21:08 24 4
gpt4 key购买 nike

我有一个二进制字符串,我想将它分成长度为8的 block ,然后存储相应的字节数组中的字节。例如,字符串“0000000011111111”应转换为{-128, 127}。到目前为止,我编写了以下函数:

public static byte[] splitBinary(String binaryString) throws ConversionException {

if (binaryString.length()%8 != 0) {
throw new ConversionException();
}

byte[] result = new byte[binaryString.length()/8];

while (i < result.length) {
result[i] = (byte) (Integer.parseInt(binaryString.substring(i, i+8), 2)-128);
i+=8;
}
return result;
}

但这会导致 {-128, 0}。我怎样才能实现所需的功能?

最佳答案

我按以下方式更改了该功能,现在它按预期工作(在纠正我的期望之后;))。谢谢大家!

public static byte[] splitBinaryStringToByteArray(String binaryString) throws ConversionException {

if (binaryString.length()%8 != 0) {
throw new ConversionException();
}

byte[] result = new byte[binaryString.length()/8];

int i =0;int j=0;
while (i < binaryString.length()) {
System.out.println("Substring: " + binaryString.substring(i, i+8));
result[j] =((byte)Integer.parseInt((binaryString.substring(i, i+8)), 2));
j++;
i+=8;
}
return result;
}

关于java - 在Java中将二进制字符串转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59352825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com