初始化

java.math.BigInteger 類為所有 Java 的原始整數運算子和 java.lang.Math 的所有相關方法提供運算類似物。由於 java.math 包不會自動提供,你可能必須先匯入 java.math.BigInteger 才能使用簡單的類名。

要將 longint 值轉換為 BigInteger,請使用:

long longValue = Long.MAX_VALUE;
BigInteger valueFromLong = BigInteger.valueOf(longValue); 

或者,對於整數:

int intValue = Integer.MIN_VALUE; // negative
BigInteger valueFromInt = BigInteger.valueOf(intValue);

這會將 intValue 整數加寬為 long,使用符號位擴充套件為負值,這樣負值將保持為負值。

要將數字 String 轉換為 BigInteger,請使用:

String decimalString = "-1";
BigInteger valueFromDecimalString = new BigInteger(decimalString);

以下建構函式用於將指定基數中 BigInteger 的 String 表示轉換為 BigInteger

String binaryString = "10";
int binaryRadix = 2;
BigInteger valueFromBinaryString = new BigInteger(binaryString , binaryRadix);

Java 還支援將位元組直接轉換為 BigInteger 的例項。目前只能使用有符號和無符號大端編碼:

byte[] bytes = new byte[] { (byte) 0x80 }; 
BigInteger valueFromBytes = new BigInteger(bytes);

這將生成一個值為 -128 的 BigInteger 例項,因為第一位被解釋為符號位。

byte[] unsignedBytes = new byte[] { (byte) 0x80 };
int sign = 1; // positive
BigInteger valueFromUnsignedBytes = new BigInteger(sign, unsignedBytes);

這將生成值為 128 的 BigInteger 例項,因為位元組被解釋為無符號數,並且符號顯式設定為 1,即正數。

常見值有預定義常量:

  • BigInteger.ZERO - 值 0
  • BigInteger.ONE - 值 1
  • BigInteger.TEN - 值 10

還有 BigInteger.TWO(值為 2),但你不能在你的程式碼中使用它,因為它是 private