2017-07-30 26 views
-1

我試圖十六進制轉換爲BigInteger的,這裏是源代碼:我不能轉換(十六進制)的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)); 
} 

我試圖運行此源代碼,但我得到運行時錯誤是這樣的:

異常在線程 「主」 java.lang.NumberFormatException:對於輸入 字符串: 「.... 14de3dL」 處 java.lang.Integer.parseInt java.lang.NumberFormatException.forInputString(未知源)(未知來源) java.math.BigInteger。(未知源)在 sss.main.main(main.java:15)

源代碼中是否有問題?我找不到它。

+1

「L」不是十六進制語法的一部分 –

回答

0

作爲建議L指出的是不是十六進制演示的一部分。 L用於將字符串表示爲Long,因此它是十六進制表示中的無效字符。下面的代碼應該有幫助

BigInteger a = new BigInteger("c6e87a3b3ef791287ac85a0c7836dd8305dd9a4c0024123db9145bb5067a8abf142e9001b0788039fd4d676b59db2110da23532282c7648d94fdbf29b731b0d21f9ca51acd44063f271326915283af97f0822519bbe2a6b80618e45e6194b2445d5afe70cf2c10569034966f3bc3b9a30d3ac4f06dbbca89fce7ef64ee14de3d", 16); 
System.out.println(a.toString());