转换十六进制值非常大的字符串

Art*_*hur 3 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);
Run Code Online (Sandbox Code Playgroud)

我期待获得价值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)
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

ΦXo*_*a ツ 7

使用BigInteger 传递String值作为参数,并将radix作为参数

String strHexNumber = "9C72E0FA11C2E6A8";
BigInteger mySuperBigInteger = new BigInteger(strHexNumber , 16);
Run Code Online (Sandbox Code Playgroud)