2010-10-07 39 views
106

我想知道是否有任何方法將Integer類型的變量轉換爲BigInteger。我試着強制轉換Integer變量,但是我得到一個說明不可轉換類型的錯誤。從Integer轉換爲BigInteger

+9

你問BigInteger的幾個問題,將通過閱讀Javadoc中很容易得到解決。按照我的答案中的鏈接,查看BigInteger所具有的所有方法和構造函數。 – jjnguy 2010-10-07 02:09:07

回答

205

你想用的方法BigInteger#valueOf(long val)

例如,

BigInteger bi = BigInteger.valueOf(myInteger.intValue()); 

製作一個第一字符串是不必要的和不希望的。

+2

@我,不。如果它是一個整數,Java會自動爲你擴展它。 (OP說他有一個Integer) – jjnguy 2010-10-07 02:17:27

+0

這樣也可以。在Integer上,intValue()不會溢出,所以對valueOf的調用將簡單地將int擴展爲long。在這個例子中,使用longValue()和intValue()沒有明顯區別,但是如果他以Long開頭,他會想使用longValue()。 – jbindel 2010-10-07 02:18:45

+0

也有人建議,刪除'intValue()'看起來不錯,現代版本的Java會自動將'Integer'變成一個'int',然後使用。自動拆箱僅隱藏您的詳細信息。 – jbindel 2012-11-02 15:11:02

-6

可以使用String構造從BigInteger像這樣:

int regularInt = 321312; // some value 
BigInteger bigInt = new BigInteger(String.valueOf(regularInt)); 
0

你可以這樣做:

Integer i = 1; 
    new BigInteger("" + i); 
+4

你可以,但你爲什麼?在已經接受的答案中提出了一個更好的解決方案。 – 2018-01-30 11:50:40

+0

使字符串執行整數運算會浪費更多的CPU週期,而不是您要計算的數量。 – jbindel 2018-01-31 16:02:58