Java 我能';t将十六进制转换为BigInteger

Java 我能';t将十六进制转换为BigInteger,java,hex,biginteger,Java,Hex,Biginteger,我尝试将十六进制转换为BigInteger,以下是源代码: public static void main (String[] args) { BigInteger a = new BigInteger("c6e87a3b3ef791287ac85a0c7836dd8305dd9a4c0024123db9145bb5067a8abf142e9001b0788039fd4d676b59db2110da23532282c7648d94fdbf29b731b0d21f9ca51acd44063

我尝试将十六进制转换为BigInteger,以下是源代码:

public static void main (String[] args)
{
    BigInteger a = new BigInteger("c6e87a3b3ef791287ac85a0c7836dd8305dd9a4c0024123db9145bb5067a8abf142e9001b0788039fd4d676b59db2110da23532282c7648d94fdbf29b731b0d21f9ca51acd44063f271326915283af97f0822519bbe2a6b80618e45e6194b2445d5afe70cf2c10569034966f3bc3b9a30d3ac4f06dbbca89fce7ef64ee14de3dL", 16);
    BigInteger b = new BigInteger("9e5d1bd4f53eebc8a695c61ba4436e38af273fd6733115611fded8dd407b5f0bc04301829dc6ed921af866c3c7977839fc75831152307f8e50e3c0f9107b6ae82ddab584807ea5ba7f32f9bfcab6218c6c6367817dfdd3b2ccc5c21cc9550b9248cac34dfb0d22151c196ca843f15614b3f6b044f9c5e727dc0b44f441c2ed7fL", 16);
    System.out.println(a);
    System.out.println(b);
    // System.out.println(modInv(a, b));
}
我试图运行此源代码,但出现如下运行时错误:

线程“main”java.lang.NumberFormatException中的异常:用于输入 字符串:“…14de3dL”位于 位于的java.lang.NumberFormatException.forInputString(未知源) java.lang.Integer.parseInt(未知源代码)位于 java.math.biginger.(未知源代码)位于 main.main(main.java:15)


源代码中有什么问题吗?我找不到它。

首先,
L
不包含在您在两个字符串末尾编写的
十六进制数中。您可以访问此链接以获取有关
十六进制数的帮助

在浏览完这篇文章后,请也查看这篇文章


正如注释中指出的,L不是十六进制表示法的一部分。L用于表示字符串的长度,因此在十六进制表示法中它是无效字符。下面的代码应该会有帮助

 BigInteger a = new BigInteger("c6e87a3b3ef791287ac85a0c7836dd8305dd9a4c0024123db9145bb5067a8abf142e9001b0788039fd4d676b59db2110da23532282c7648d94fdbf29b731b0d21f9ca51acd44063f271326915283af97f0822519bbe2a6b80618e45e6194b2445d5afe70cf2c10569034966f3bc3b9a30d3ac4f06dbbca89fce7ef64ee14de3d", 16);
 System.out.println(a.toString());
“L”不是十六进制语法的一部分