gpt4 book ai didi

java - 将二进制序列存储在字节数组中?

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

我需要将几个长度为 16 位的二进制序列存储到字节数组(长度为 2)中。一两个二进制数不会改变,因此进行转换的函数可能有点矫枉过正。例如,16 位二进制序列是 1111000011110001。如何将其存储在长度为 2 的字节数组中?

最佳答案

    String val = "1111000011110001";
byte[] bval = new BigInteger(val, 2).toByteArray();

还有其他选择,但我发现最好使用 BigInteger 类,它可以转换为字节数组,以解决此类问题。我更喜欢 if,因为我可以从 String 实例化类,它可以表示各种基数,如 8、16 等,并且也可以这样输出。

编辑:星期一 ... :P

public static byte[] getRoger(String val) throws NumberFormatException,
NullPointerException {
byte[] result = new byte[2];
byte[] holder = new BigInteger(val, 2).toByteArray();

if (holder.length == 1) result[0] = holder[0];
else if (holder.length > 1) {
result[1] = holder[holder.length - 2];
result[0] = holder[holder.length - 1];
}
return result;
}

例子:

int bitarray = 12321;
String val = Integer.toString(bitarray, 2);
System.out.println(new StringBuilder().append(bitarray).append(':').append(val)
.append(':').append(Arrays.toString(getRoger(val))).append('\n'));

关于java - 将二进制序列存储在字节数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5409998/

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