Java中的BigInteger

來源:互聯網
上載者:User
複製的API上的文檔,BigInteger對付一般的高精度沒有問題。java.math
類 BigInteger
java.lang.Object      java.lang.Number          java.math.BigInteger
所有已實現的介面:
Serializable,
Comparable<BigInteger>
public class BigInteger
extends Number
implements Comparable<BigInteger>

不可變的任意精度的整數。所有操作中,都以二進位補碼形式表示 BigInteger(如 Java 的基本整數類型)。BigInteger 提供所有 Java 的基本整數操作符的對應物,並提供 java.lang.Math 的所有相關方法。另外,BigInteger 還提供以下運算:模算術、GCD 計算、質數測試、素數產生、位操作以及一些其他動作。

算術運算的語義完全模仿 Java 整數算術運算子的語義,如 The Java Language Specification 中所定義的。例如,以零作為除數的除法拋出ArithmeticException,而負數除以正數的除法則產生一個負(或零)的餘數。Spec 中關於溢出的細節都被忽略了,因為 BigIntegers 所設定的實際大小能適應操作結果的需要。

位移操作的語義擴充了 Java 的位移操作符的語義以允許產生負位移距離。帶有負位移距離的右移操作會導致左移操作,反之亦然。忽略無符號的右位移運算子(>>>),因為該操作與由此類提供的“無窮大的詞大小”抽象結合使用時毫無意義。

逐位邏輯運算的語義完全模仿 Java 的逐位整數運算子的語義。在執行操作之前,二進位運算子(and、or、xor)對兩個運算元中的較短運算元隱式執行符號擴充。

比較操作執行有符號的整數比較,類似於 Java 的關係運算子和相等性運算子執行的比較。

提供的模算術操作用來計算餘數、求冪和乘法可逆元。這些方法始終返回非負結果,範圍在 0 和 (modulus - 1)(包括)之間。

位操作對其運算元的二進位補碼錶示形式的單個位進行操作。如有必要,運算元會通過擴充符號來包含指定的位。單一位操作不能產生與正在被操作的 BigInteger 符號不同的 BigInteger,因為它們僅僅影響單個位,並且此類提供的“無窮大詞大小”抽象可保證在每個 BigInteger 前存在無窮多的“虛擬符號位”數。

為了簡潔明了,在整個 BigInteger 方法的描述中都使用了虛擬碼。虛擬碼運算式 (i + j) 是“其值為 BigInteger
i 加 BigInteger j 的 BigInteger”的簡寫。虛擬碼運算式 (i == j) 是“若且唯若 BigIntegeri 表示與 BigInteger
j 相同的值時,才為 true”的簡寫。可以類似地解釋其他虛擬碼運算式。

當為任何輸入參數傳遞 null 對象引用時,此類中的所有方法和構造方法都將拋出 NullPointerException。  

欄位摘要 
static BigInteger ONE 
          BigInteger 的常量 1。 
static BigInteger TEN 
          BigInteger 的常量 10。 
static BigInteger ZERO 
          BigInteger 的常量 0。 
  構造方法摘要 
BigInteger(byte[] val) 
          將包含 BigInteger 的二進位補碼錶示形式的位元組數群組轉換為 BigInteger。 
BigInteger(int signum, byte[] magnitude) 
          將 BigInteger 的符號-數量表示形式轉換為 BigInteger。 
BigInteger(int bitLength, int certainty, Random rnd) 
          構造一個隨機產生的正 BigInteger,它可能是一個具有指定 bitLength 的素數。 
BigInteger(int numBits, Random rnd) 
          構造一個隨機產生的 BigInteger,它是在 0 到 (2numBits - 1)(包括)範圍內均勻分布的值。 
BigInteger(String val) 
          將 BigInteger 的十進位字串表示形式轉換為 BigInteger。 
BigInteger(String val, int radix) 
          將指定基數的 BigInteger 的字串表示形式轉換為 BigInteger。 
  方法摘要 
 BigInteger abs() 
          返回其值是此 BigInteger 的絕對值的 BigInteger。 
 BigInteger add(BigInteger val) 
          返回其值為 (this + val) 的 BigInteger。 
 BigInteger and(BigInteger val) 
          返回其值為 (this & val) 的 BigInteger。 
 BigInteger andNot(BigInteger val) 
          返回其值為 (this & ~val) 的 BigInteger。 
 int bitCount() 
          返回此 BigInteger 的二進位補碼錶示形式中與符號不同的位的數量。 
 int bitLength() 
          返回此 BigInteger 的最小的二進位補碼錶示形式的位元,不包括 符號位。 
 BigInteger clearBit(int n) 
          返回其值與清除了指定位的此 BigInteger 等效的 BigInteger。 
 int compareTo(BigInteger val) 
          將此 BigInteger 與指定的 BigInteger 進行比較。 
 BigInteger divide(BigInteger val) 
          返回其值為 (this / val) 的 BigInteger。 
 BigInteger[] divideAndRemainder(BigInteger val) 
          返回包含 (this / val) 後跟 (this % val) 的兩個 BigInteger 的數組。 
 double doubleValue() 
          將此 BigInteger 轉換為 double。 
 boolean equals(Object x) 
          比較此 BigInteger 與指定的 Object 的相等性。 
 BigInteger flipBit(int n) 
          返回其值與對此 BigInteger 進行指定位翻轉後的值等效的 BigInteger。 
 float floatValue() 
          將此 BigInteger 轉換為 float。 
 BigInteger gcd(BigInteger val) 
          返回一個 BigInteger,其值是 abs(this) 和 abs(val) 的最大公約數。 
 int getLowestSetBit() 
          返回此 BigInteger 最右端(最低位)1 位元的索引(即從此位元組的右端開始到本位元組中最右端 1 位元之間的 0 位元的位元)。 
 int hashCode() 
          返回此 BigInteger 的雜湊碼。 
 int intValue() 
          將此 BigInteger 轉換為 int。 
 boolean isProbablePrime(int certainty) 
          如果此 BigInteger 可能為素數,則返回 true,如果它一定為合數,則返回 false。 
 long longValue() 
          將此 BigInteger 轉換為 long。 
 BigInteger max(BigInteger val) 
          返回此 BigInteger 和 val 的最大值。 
 BigInteger min(BigInteger val) 
          返回此 BigInteger 和 val 的最小值。 
 BigInteger mod(BigInteger m) 
          返回其值為 (this mod m) 的 BigInteger。 
 BigInteger modInverse(BigInteger m) 
          返回其值為 (this-1 mod m) 的 BigInteger。 
 BigInteger modPow(BigInteger exponent, BigInteger m) 
          返回其值為 (thisexponent mod m) 的 BigInteger。 
 BigInteger multiply(BigInteger val) 
          返回其值為 (this * val) 的 BigInteger。 
 BigInteger negate() 
          返回其值是 (-this) 的 BigInteger。 
 BigInteger nextProbablePrime() 
          返回大於此 BigInteger 的可能為素數的第一個整數。 
 BigInteger not() 
          返回其值為 (~this) 的 BigInteger。 
 BigInteger or(BigInteger val) 
          返回其值為 (this | val) 的 BigInteger。 
 BigInteger pow(int exponent) 
          返回其值為 (thisexponent) 的 BigInteger。 
static BigInteger probablePrime(int bitLength, Random rnd) 
          返回有可能是素數的、具有指定長度的正 BigInteger。 
 BigInteger remainder(BigInteger val) 
          返回其值為 (this % val) 的 BigInteger。 
 BigInteger setBit(int n) 
          返回其值與設定了指定位的此 BigInteger 等效的 BigInteger。 
 BigInteger shiftLeft(int n) 
          返回其值為 (this << n) 的 BigInteger。 
 BigInteger shiftRight(int n) 
          返回其值為 (this >> n) 的 BigInteger。 
 int signum() 
          返回此 BigInteger 的加號或減號函數。 
 BigInteger subtract(BigInteger val) 
          返回其值為 (this - val) 的 BigInteger。 
 boolean testBit(int n) 
          若且唯若設定了指定的位時,返回 true。 
 byte[] toByteArray() 
          返回一個位元組數組,該數組包含此 BigInteger 的二進位補碼錶示形式。 
 String toString() 
          返回此 BigInteger 的十進位字串表示形式。 
 String toString(int radix) 
          返回此 BigInteger 的給定基數的字串表示形式。 
static BigInteger valueOf(long val) 
          返回其值等於指定 long 的值的 BigInteger。 
 BigInteger xor(BigInteger val) 
          返回其值為 (this ^ val) 的 BigInteger。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.