java - 转换具有非常大数字的十六进制值的字符串

标签 java hex biginteger

我正在尝试将字符串 9C72E0FA11C2E6A8 转换为十进制值:

             String strHexNumber = "9C72E0FA11C2E6A8";
             Long decimalNumber = Long.parseLong(strHexNumber, 16);
             System.out.println("Hexadecimal number converted to decimal number");
             System.out.println("Decimal number is : " + decimalNumber);

我希望得到值 11273320181906204328,但我得到了

Exception in thread "main" java.lang.NumberFormatException: For input string: "9C72E0FA11C2E6A8"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Long.parseLong(Long.java:592)
    at ConvertHexToDecimalExample.main(ConvertHexToDecimalExample.java:22)

如何在 Java 中将十六进制转换为十进制?

谢谢!

最佳答案

使用 BigInteger 将字符串值作为参数传递并将基数作为参数传递

String strHexNumber = "9C72E0FA11C2E6A8";
BigInteger mySuperBigInteger = new BigInteger(strHexNumber , 16);

关于java - 转换具有非常大数字的十六进制值的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41724262/

相关文章:

java - 套接字镜像发送但不接收

java - 如何使用java JDBC获取MySql的数据库列表 "Schema"名称

java - 骑士之旅 - java 回溯,出界

java - 当我只有 BigInteger 时,如何使用 ArrayList<Integer>#contains?

java - 关于 java.math.BigInteger

java - 向左/向右滚动到新页面

hex - 以十六进制表示形式显示 u8 切片

在C中从十六进制字符串转换为字节数组

javascript - 为什么JavaScript中Masking后得到的值不准确?

string - 删除尽可能少的数字以使数字可以被 3 整除