|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.lang.Number java.math.BigInteger
public class 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) 是“當且僅當 BigInteger i 表示與 BigInteger j 相同的值時,才為 true”的簡寫。可以類似地解釋其他偽程式碼表達式。
當為任何輸入參數傳遞 null 物件參考時,此類別中的所有方法和建構子都將拋出 NullPointerException
。
BigDecimal
,
序列化表格欄位摘要 | |
---|---|
static BigInteger |
ONE
BigInteger 的常數 1。 |
static BigInteger |
TEN
BigInteger 的常數 10。 |
static BigInteger |
ZERO
BigInteger 的常數 0。 |
建構子摘要 | |
---|---|
BigInteger(byte[] val)
將包含 BigInteger 的二進制補碼表示形式的 byte 陣列轉換為 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()
返回一個 byte 陣列,該陣列包含此 BigInteger 的二進制補碼表示形式。 |
String |
toString()
返回此 BigInteger 的十進制字元串表示形式。 |
String |
toString(int radix)
返回此 BigInteger 的給定進制的字元串表示形式。 |
static BigInteger |
valueOf(long val)
返回其值等於指定 long 的值的 BigInteger。 |
BigInteger |
xor(BigInteger val)
返回其值為 (this ^ val) 的 BigInteger。 |
從類別 java.lang.Number 繼承的方法 |
---|
byteValue, shortValue |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
public static final BigInteger ZERO
public static final BigInteger ONE
public static final BigInteger TEN
建構子詳細資訊 |
---|
public BigInteger(byte[] val)
val
- BigInteger 的 big-endian 二進制補碼表示形式。
NumberFormatException
- val 為零位元組長。public BigInteger(int signum, byte[] magnitude)
signum
- 該數的正負號(-1 表示負,0 表示零,1 表示正)。magnitude
- 該數的大小的 big-endian 二進製表示形式。
NumberFormatException
- signum 不是三個合法值之一(-1、0 和 1),或者 signum 是 0 並且 magnitude 套件含一個或多個非零位元組。public BigInteger(String val, int radix)
val
- BigInteger 的字元串表示形式。radix
- 要在解釋 val 時使用的進制。
NumberFormatException
- val 不是指定進制的 BigInteger 的有效表示形式,或者 radix 超出從 Character.MIN_RADIX
到 Character.MAX_RADIX
(包括)的範圍。Character.digit(char, int)
public BigInteger(String val)
val
- BigInteger 的十進制字元串表示形式。
NumberFormatException
- val 不是 BigInteger 的有效表示形式。Character.digit(char, int)
public BigInteger(int numBits, Random rnd)
numBits
- 新 BigInteger 的最大 bitLength。rnd
- 計算新 BigInteger 時使用的隨機源。
IllegalArgumentException
- 如果 numBits 為負。bitLength()
public BigInteger(int bitLength, int certainty, Random rnd)
相對於此建構子,建議優先使用 probablePrime
方法,必須指定一個確定數的情況除外。
bitLength
- 返回的 BigInteger 的 bitLength。certainty
- 調用方允許的不確定性的度量。新的 BigInteger 表示素數的概率超出 (1 - 1/2certainty)。此建構子的執行時間與此參數的值是成比例的。rnd
- 隨機位元源,用這些隨機位元選擇用來進行質數測試的候選數。
ArithmeticException
- bitLength < 2。bitLength()
方法詳細資訊 |
---|
public static BigInteger probablePrime(int bitLength, Random rnd)
bitLength
- 返回的 BigInteger 的 bitLength。rnd
- 隨機位元源,用這些隨機位元選擇用來進行質數測試的候選數。
ArithmeticException
- bitLength < 2。bitLength()
public BigInteger nextProbablePrime()
BigInteger
的可能為素數的第一個整數。此方法返回的數是合數的概率不超出 2-100。此方法在執行以下搜尋時將始終不會跳過素數:如果它返回 p,則不存在 this < q < p 的素數 q。
BigInteger
的可能為素數的第一個整數。
ArithmeticException
- this < 0。public static BigInteger valueOf(long val)
long
的值的 BigInteger。提供的此“靜態處理器方法”優先於 (long
) 建構子,因為前者允許重用經常使用的 BigInteger。
val
- 要返回的 BigInteger 的值。
public BigInteger add(BigInteger val)
val
- 將添加到此 BigInteger 中的值。
public BigInteger subtract(BigInteger val)
val
- 從此 BigInteger 中減去的值。
public BigInteger multiply(BigInteger val)
val
- 要乘以此 BigInteger 的值。
public BigInteger divide(BigInteger val)
val
- 此 BigInteger 要除以的值。
ArithmeticException
- val==0public BigInteger[] divideAndRemainder(BigInteger val)
val
- 此 BigInteger 要除以的值和計算所得的餘數。
ArithmeticException
- val==0public BigInteger remainder(BigInteger val)
val
- 此 BigInteger 要除以的值和計算所得的餘數。
ArithmeticException
- val==0public BigInteger pow(int exponent)
exponent
- 此 BigInteger 的指數。
ArithmeticException
- exponent 為負。(這會導致該運算產生一個非整數值。)public BigInteger gcd(BigInteger val)
val
- 要一起計算最大公約數的值。
public BigInteger abs()
public BigInteger negate()
public int signum()
public BigInteger mod(BigInteger m)
m
- 模數。
ArithmeticException
- m <= 0remainder(java.math.BigInteger)
public BigInteger modPow(BigInteger exponent, BigInteger m)
exponent
- 該指數。m
- 模數。
ArithmeticException
- m <= 0modInverse(java.math.BigInteger)
public BigInteger modInverse(BigInteger m)
m
- 模數。
ArithmeticException
- m <= 0,或者此 BigInteger 沒有乘法可逆元 mod m(即此 BigInteger 不是 m 的相對素數)。public BigInteger shiftLeft(int n)
n
- 以位為單位的位移距離。
shiftRight(int)
public BigInteger shiftRight(int n)
n
- 以位為單位的位移距離。
shiftLeft(int)
public BigInteger and(BigInteger val)
val
- 要與此 BigInteger 執行 AND(與)運算的值。
public BigInteger or(BigInteger val)
val
- 要與此 BigInteger 執行或運算的值。
public BigInteger xor(BigInteger val)
val
- 要與此 BigInteger 執行異或運算的值。
public BigInteger not()
public BigInteger andNot(BigInteger val)
val
- 要進行求補且與此 BigInteger 執行與運算的值。
public boolean testBit(int n)
n
- 要測試的位的索引。
ArithmeticException
- n 為負。public BigInteger setBit(int n)
n
- 要設置的位的索引。
ArithmeticException
- n 為負。public BigInteger clearBit(int n)
n
- 要清除的位的索引。
ArithmeticException
- n 為負。public BigInteger flipBit(int n)
n
- 要翻轉的位的索引。
ArithmeticException
- n 為負。public int getLowestSetBit()
public int bitLength()
public int bitCount()
public boolean isProbablePrime(int certainty)
certainty
- 調用方允許的不確定性的度量。如果該調用返回 true,則此 BigInteger 是素數的概率超出 (1 - 1/2certainty)。此方法的執行時間與此參數的值是成比例的。
public int compareTo(BigInteger val)
Comparable<BigInteger>
中的 compareTo
val
- 將此 BigInteger 與之比較的 BigInteger。
public boolean equals(Object x)
Object
中的 equals
x
- 將此 BigInteger 與之比較的 Object。
Object.hashCode()
,
Hashtable
public BigInteger min(BigInteger val)
val
- 要計算最小值的值。
public BigInteger max(BigInteger val)
val
- 要計算最大值的值。
public int hashCode()
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public String toString(int radix)
Character.MIN_RADIX
到 Character.MAX_RADIX
(包括)這一範圍,則其預設值為 10(Integer.toString 就是這種情況)。使用由 Character.forDigit 提供的從數字到字元的映射,並在需要時在前面加一個負號。(此表示形式與 (String, int
)
建構子相容。)
radix
- 字元串表示形式的進制。
Integer.toString(int, int)
,
Character.forDigit(int, int)
,
BigInteger(java.lang.String, int)
public String toString()
(String)
建構子相容,並允許使用 Java 的 + 運算符將字元串連接。)
Object
中的 toString
Character.forDigit(int, int)
,
BigInteger(java.lang.String)
public byte[] toByteArray()
(byte[])
建構子相容。)
BigInteger(byte[])
public int intValue()
int
。此轉換類似於 Java Language Specification 中定義的從 long
到 int
的基本收縮轉換:如果此 BigInteger 太長而不適合用 int
表示,則僅返回 32 位的低位位元組。注意,此轉換會丟失關於該 BigInteger 值的總大小的資訊,並返回帶有相反符號的結果。
Number
中的 intValue
int
的此 BigInteger。public long longValue()
long
。此轉換類似於 Java Language Specification 中定義的從 long
到 int
的基本收縮轉換:如果此 BigInteger 太長而不適合用 long
表示,則僅返回 64 位的低位位元組。注意,此轉換會丟失關於該 BigInteger 值的總大小的資訊,並返回帶有相反符號的結果。
Number
中的 longValue
long
的此 BigInteger。public float floatValue()
float
。此轉換類似於 Java Language Specification 中定義的從 double
到 float
的基本收縮轉換:如果此 BigInteger 的數量太大,不能表示為 float
,則將其適當地轉換為 Float.NEGATIVE_INFINITY
或 Float.POSITIVE_INFINITY
。注意,即使在返回值是有限的情況下,此轉換也可以丟失關於 BigInteger 值的精度的資訊。
Number
中的 floatValue
float
的此 BigInteger。public double doubleValue()
double
。此轉換類似於 Java Language Specification 中定義的從 double
到 float
的基本收縮轉換:如果此 BigInteger 的數量太大,不能表示為 double
,則將其適當地轉換為 Double.NEGATIVE_INFINITY
或 Double.POSITIVE_INFINITY
。注意,即使在返回值是有限的情況下,此轉換也可以丟失關於 BigInteger 值的精度的資訊。
Number
中的 doubleValue
double
的此 BigInteger。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。