gpt4 book ai didi

java - 将位数组值转换为二进制数字符串

转载 作者:行者123 更新时间:2023-12-02 07:14:19 24 4
gpt4 key购买 nike

现在看下半部分

我之前在这里看到过将十六进制转换为二进制的方法,但我的问题是:是否可以将字节数组内的十六进制值转换为二进制值并将其放入一个大字符串中?

到目前为止我一直在编写的代码是:

public static void main (String[] args){

byte [] ex;
ex = new byte [] {(byte)0xFF, (byte)0x11, (byte)0xEE, (byte)0x22, (byte)0xDD, (byte)0x33, (byte)0xCC, (byte)0x44};
printByteArray(ex);

}

public static void printByteArray(byte [] array)


{
System.out.print("[ ");
for(int i = 0; i < array.length; i++)
{
System.out.print(Integer.toHexString((array[i]>>4)&0x0F).toUpperCase());
System.out.print(Integer.toHexString(array[i]&0x0F).toUpperCase() + " ");
}
System.out.println( "]");
}

我想要改变的是能够将整个二进制字符串放入字节数组中,即获取每个十六进制数字的二进制值,然后将其全部放入巨大的字节数组中。

已编辑

好吧,我选择第一个,这并不重要,我猜它们有多长,它们仍然是正确的。但现在你能帮我拿走并使用那根绳子吗?我有这个代码:

public static void main (String[] args){

String binary;
byte [] ex;
ex = new byte [] {(byte)0xFF, (byte)0x11, (byte)0xEE, (byte)0x22, (byte)0xDD, (byte)0x33, (byte)0xCC, (byte)0x44};
printByteArray(ex);
binary = hexToBin(ex);
System.out.println(binary);

}

public static String hexToBin(byte [] array)
{
String binStr = null;
for(int i = 0; i < array.length; i++){
binStr.append(Integer.toBinaryString(array[i]));
}
return binStr;
}

...但由于我初始化字符串的方式(首先),我的输出中有 null 。有什么想法如何解决这个问题吗?另外我刚刚将其更改为追加,现在我不知道为什么但不允许我使用它?

最佳答案

Integer.toBinaryString 能给你你想要的吗?

http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#toBinaryString(int)

public static void printByteArray(byte [] array)
{
System.out.print("[ ");
for(int i = 0; i < array.length; i++)
{
System.out.print(Integer.toBinaryString(array[i]));
}
System.out.println( "]");
}

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

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