初始化
java.math.BigInteger
類為所有 Java 的原始整數運算子和 java.lang.Math
的所有相關方法提供運算類似物。由於 java.math
包不會自動提供,你可能必須先匯入 java.math.BigInteger
才能使用簡單的類名。
要將 long
或 int
值轉換為 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
。