java - 如何使用 Java 将十六进制的 String 数组转换为 int 数组?

标签 java hex

<分区>

我有一个像下面这样的类

public class EXOR{

    public static void conv(){
        String [] Parray={"243f6a88","85a308d3","13198a2e","03707344","a4093822","299f31d0","082efa98",
                "ec4e6c89","452821e6", "38d01377", "be5466cf","34e90c6c","c0ac29b7","c97c50dd","3f84d5b5","b5470917","9216d5d9","8979fb1b"};

        String binAddr[]=new String[18];
        for (int i=0;i<18;i++)
        {
            int x[]=new int[18];
            binAddr[i]= Integer.toBinaryString(Integer.parseInt(Parray[i],16));
            System.out.println("binernya : " +binAddr[i]);
        }

    }

    public static void main(String[] args){
        new EXOR().conv();

    }
}

我想将该数组转换为二进制数组格式。 我想得到如下输出 例如

00100100001111110110101010001000
10000111101000110000100011010011
................................

如何解决这个问题?

最佳答案

我想在执行您的代码时您一定遇到了一个数字点异常。当十六进制字符串超出整数范围时会发生这种情况。

您可以使用:

    binAddr[i]= (new BigInteger(Parray[i],16)).toString(2);

代替

binAddr[i]= Integer.toBinaryString(Integer.parseInt(Parray[i],16));

这将解决您的问题以供快速引用 Big Integer Documentation

关于java - 如何使用 Java 将十六进制的 String 数组转换为 int 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30586857/

相关文章:

java - 预测轨迹路径点的最佳方法

java - JOptionPane 中的文本换行?

c++ - 为什么在使用自定义 QFlags 实现时会出现这种按位操作错误?

c++ - 如何在 C++ 中创建一个从文件读取到十六进制数组的函数?

java - 大型目录,JSp 页面导致 OutOfMemoryErrors

java - 单次迭代 => 从 Java 到 Scala 的多个输出集合

java - 注释指定的 bean 名称与现有的、不兼容的 bean 定义冲突

c++ - 将 Hex Char 转换为 Int - 有更好的方法吗?

python - 使用 Python 将命令参数发送到串口

java - Java中的整数到两位十六进制