public class BigInteger
extends Number
implements Comparable<BigInteger>, Serializable
java.lang.Object | ||
↳ | java.lang.Number | |
↳ | java.math.BigInteger |
一个不可变的任意精度有符号整数。
BitSet
for high-performance bitwise operations on arbitrarily-large sequences of bits.
Fields |
|
---|---|
public static final BigInteger |
ONE
|
public static final BigInteger |
TEN
|
public static final BigInteger |
ZERO
|
Public constructors |
|
---|---|
BigInteger(int numBits, Random random) 在 |
|
BigInteger(int bitLength, int certainty, Random random) 构造一个随机的 |
|
BigInteger(String value) 构造一个新的 |
|
BigInteger(String value, int radix) 通过解析 |
|
BigInteger(int signum, byte[] magnitude) 用给定的符号和大小构造一个新的 |
|
BigInteger(byte[] value) 根据给定的二进制补码表示构造一个新的 |
Public methods |
|
---|---|
BigInteger |
abs() 返回 |
BigInteger |
add(BigInteger value) 返回 |
BigInteger |
and(BigInteger value) 返回 |
BigInteger |
andNot(BigInteger value) 返回 |
int |
bitCount() 返回 |
int |
bitLength() 返回值的二进制补码表示的长度,不用前导零用于正数/不用前导用于负值。 |
BigInteger |
clearBit(int n) 返回 |
int |
compareTo(BigInteger value) 将此 |
BigInteger |
divide(BigInteger divisor) 返回 |
BigInteger[] |
divideAndRemainder(BigInteger divisor) 返回一个两个元件 |
double |
doubleValue() 以double形式返回此 |
boolean |
equals(Object x) 指示其他某个对象是否“等于”这一个。 |
BigInteger |
flipBit(int n) 返回 |
float |
floatValue() 将此 |
BigInteger |
gcd(BigInteger value) 返回 |
int |
getLowestSetBit() 返回此 |
int |
hashCode() 返回对象的哈希码值。 |
int |
intValue() 将此 |
boolean |
isProbablePrime(int certainty) 测试这个 |
long |
longValue() 以长 |
BigInteger |
max(BigInteger value) 返回此 |
BigInteger |
min(BigInteger value) 返回此 |
BigInteger |
mod(BigInteger m) 返回 |
BigInteger |
modInverse(BigInteger m) 返回 |
BigInteger |
modPow(BigInteger exponent, BigInteger modulus) 返回 |
BigInteger |
multiply(BigInteger value) 返回 |
BigInteger |
negate() 返回 |
BigInteger |
nextProbablePrime() 返回可能为 |
BigInteger |
not() 返回 |
BigInteger |
or(BigInteger value) 返回 |
BigInteger |
pow(int exp) 返回 |
static BigInteger |
probablePrime(int bitLength, Random random) 返回 |
BigInteger |
remainder(BigInteger divisor) 返回 |
BigInteger |
setBit(int n) 返回 |
BigInteger |
shiftLeft(int n) 返回 |
BigInteger |
shiftRight(int n) 返回 |
int |
signum() 返回这个 |
BigInteger |
subtract(BigInteger value) 返回 |
boolean |
testBit(int n) 测试 |
byte[] |
toByteArray() 以字节数组的形式返回此 |
String |
toString() 以十进制形式返回此 |
String |
toString(int radix) 返回一个字符串,其中包含此基数为 |
static BigInteger |
valueOf(long value) 返回值 |
BigInteger |
xor(BigInteger value) 返回 |
Inherited methods |
|
---|---|
From class java.lang.Number
|
|
From class java.lang.Object
|
|
From interface java.lang.Comparable
|
BigInteger (int numBits, Random random)
在 [0, pow(2, numBits)-1]
范围内构造一个随机非负 BigInteger
实例。
Parameters | |
---|---|
numBits |
int : maximum length of the new BigInteger in bits. |
random |
Random : is the random number generator to be used. |
Throws | |
---|---|
IllegalArgumentException |
if numBits < 0. |
BigInteger (int bitLength, int certainty, Random random)
构造一个随机BigInteger
范围内的情况下[0, pow(2, bitLength)-1]
这可能是素数。 返回的BigInteger
为素数的概率大于1 - 1/2<sup>certainty</sup>)
。
注意:如果 bitLength >= 16
,则该实现将使用OpenSSL的 BN_generate_prime_ex
作为密码强的伪随机数的来源, BN_generate_prime_ex
将忽略 Random
参数。
Parameters | |
---|---|
bitLength |
int : length of the new BigInteger in bits. |
certainty |
int : tolerated primality uncertainty. |
random |
Random
|
Throws | |
---|---|
ArithmeticException |
if bitLength < 2 . |
BigInteger (String value)
构造一个新BigInteger
通过解析value
。 字符串表示由一个可选的加号或减号组成,后跟一个非空的十进制数字序列。 数字被解释为Character.digit(char,10)
。
Parameters | |
---|---|
value |
String : string representation of the new BigInteger . |
Throws | |
---|---|
NullPointerException |
if value == null . |
NumberFormatException |
if value is not a valid representation of a BigInteger . |
BigInteger (String value, int radix)
通过解析value
构造一个新的BigInteger
实例。 字符串表示由一个可选的正号或负号组成,后跟一个指定基数中的非空数字序列。 数字被解释为Character.digit(char, radix)
。
Parameters | |
---|---|
value |
String : string representation of the new BigInteger . |
radix |
int : the base to be used for the conversion. |
Throws | |
---|---|
NullPointerException |
if value == null . |
NumberFormatException |
if value is not a valid representation of a BigInteger or if radix < Character.MIN_RADIX or radix > Character.MAX_RADIX . |
BigInteger (int signum, byte[] magnitude)
用给定的符号和大小构造一个新的 BigInteger
实例。
Parameters | |
---|---|
signum |
int : sign of the new BigInteger (-1 for negative, 0 for zero, 1 for positive). |
magnitude |
byte : magnitude of the new BigInteger with the most significant byte first. |
Throws | |
---|---|
NullPointerException |
if magnitude == null . |
NumberFormatException |
if the sign is not one of -1, 0, 1 or if the sign is zero and the magnitude contains non-zero entries. |
BigInteger (byte[] value)
根据给定的二进制补码表示构造一个新的BigInteger
。 最重要的字节是索引0处的条目。此条目的最高有效位确定新实例BigInteger
的符号。 该数组必须是非空的。
Parameters | |
---|---|
value |
byte : two's complement representation of the new BigInteger . |
Throws | |
---|---|
NullPointerException |
if value == null . |
NumberFormatException |
if the length of value is zero. |
BigInteger add (BigInteger value)
返回 BigInteger
,其值是 this + value
。
Parameters | |
---|---|
value |
BigInteger
|
Returns | |
---|---|
BigInteger |
BigInteger and (BigInteger value)
返回 BigInteger
,其值是 this & value
。
实施注意:不建议使用此方法,因为当前的实施效率不高。
Parameters | |
---|---|
value |
BigInteger : value to be and'ed with this . |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
NullPointerException |
if value == null . |
BigInteger andNot (BigInteger value)
返回BigInteger
,其值是this & ~value
。 评估x.andNot(value)
返回相同的结果为x.and(value.not())
。
实施注意:不建议使用此方法,因为当前的实施效率不高。
Parameters | |
---|---|
value |
BigInteger : value to be not'ed and then and'ed with this . |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
NullPointerException |
if value == null . |
int bitCount ()
返回this
的二进制补码表示中与符号位不同的位数。 如果this
为负数,则结果等于-this - 1
的二进制补码表示中设置的-this - 1
。
使用 bitLength(0)
以位为单位查找二进制值的长度。
实施注意:不建议使用此方法,因为当前的实施效率不高。
Returns | |
---|---|
int |
int bitLength ()
返回值的二进制补码表示的长度,不用前导零用于正数/不用前导用于负值。
this
的二进制补码表示 this
至少为 bitLength() + 1
比特。
该值将适合 int
如果 bitLength() < 32
或 long
如果 bitLength() < 64
。
Returns | |
---|---|
int |
the length of the minimal two's complement representation for this without the sign bit. |
BigInteger clearBit (int n)
返回BigInteger
具有相同的二进制表示为this
但在位置n清除位。 结果相当于this & ~pow(2, n)
。
实施注意:不建议使用此方法,因为当前的实施效率不高。
Parameters | |
---|---|
n |
int : position where the bit in this has to be cleared. |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
ArithmeticException |
if n < 0 . |
int compareTo (BigInteger value)
将此BigInteger
与value
比较。 返回-1
如果this < value
, 0
如果this == value
和1
如果this > value
。
Parameters | |
---|---|
value |
BigInteger : value to be compared with this . |
Returns | |
---|---|
int |
Throws | |
---|---|
NullPointerException |
if value == null . |
BigInteger divide (BigInteger divisor)
返回 BigInteger
,其值是 this / divisor
。
Parameters | |
---|---|
divisor |
BigInteger : value by which this is divided. |
Returns | |
---|---|
BigInteger |
this / divisor . |
Throws | |
---|---|
NullPointerException |
if divisor == null . |
ArithmeticException |
if divisor == 0 . |
BigInteger[] divideAndRemainder (BigInteger divisor)
返回一个两个元件 BigInteger
阵列含有 this / divisor
在索引0和 this % divisor
索引1。
Parameters | |
---|---|
divisor |
BigInteger : value by which this is divided. |
Returns | |
---|---|
BigInteger[] |
Throws | |
---|---|
NullPointerException |
if divisor == null . |
ArithmeticException |
if divisor == 0 . |
double doubleValue ()
将此BigInteger
作为双BigInteger
返回。 如果this
太大而无法表示为双Double.NEGATIVE_INFINITY
则返回Double.POSITIVE_INFINITY
或Double.NEGATIVE_INFINITY
。 请注意,并非[-Double.MAX_VALUE, Double.MAX_VALUE]
范围内的所有整数都可以精确地表示为double。
Returns | |
---|---|
double |
the numeric value represented by this object after conversion to type double . |
boolean equals (Object x)
指示其他某个对象是否“等于”这一个。
equals
方法在非空对象引用上实现等价关系:
x
, x.equals(x)
should return true
. x
and y
, x.equals(y)
should return true
if and only if y.equals(x)
returns true
. x
, y
, and z
, if x.equals(y)
returns true
and y.equals(z)
returns true
, then x.equals(z)
should return true
. x
and y
, multiple invocations of x.equals(y)
consistently return true
or consistently return false
, provided no information used in equals
comparisons on the objects is modified. x
, x.equals(null)
should return false
. 对于类Object
的equals
方法实现了对象上最可能的等价关系; 即对于任何非空参考值x
和y
,当且仅当x
和y
引用同一对象( x == y
的值为true
)时,此方法返回true
。
请注意,无论何时重写此方法,通常都必须重写 hashCode
方法,以便维护 hashCode
方法的一般合约,该方法声明相等对象必须具有相同的哈希代码。
Parameters | |
---|---|
x |
Object : the reference object with which to compare. |
Returns | |
---|---|
boolean |
true if this object is the same as the obj argument; false otherwise. |
BigInteger flipBit (int n)
返回BigInteger
具有相同二进制表示为this
但在位置n翻转比特。 结果相当于this ^ pow(2, n)
。
实施注意:不建议使用此方法,因为当前的实施效率不高。
Parameters | |
---|---|
n |
int : position where the bit in this has to be flipped. |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
ArithmeticException |
if n < 0 . |
float floatValue ()
将此BigInteger
作为浮点数返回。 如果this
太大而无法表示为浮点数,则返回Float.POSITIVE_INFINITY
或Float.NEGATIVE_INFINITY
。 请注意,并非所有范围为[-Float.MAX_VALUE, Float.MAX_VALUE]
整数都可以精确地表示为浮点数。
Returns | |
---|---|
float |
the numeric value represented by this object after conversion to type float . |
BigInteger gcd (BigInteger value)
返回BigInteger
其值是this
和value
。 如果this == 0
和value == 0
则返回零,否则结果为肯定。
Parameters | |
---|---|
value |
BigInteger : value with which the greatest common divisor is computed. |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
NullPointerException |
if value == null . |
int getLowestSetBit ()
返回此BigInteger
的二进制补码表示中最低设置位的位置。 如果所有位均为零(此== 0),则返回-1作为结果。
实施注意:不建议使用此方法,因为当前的实施效率不高。
Returns | |
---|---|
int |
int hashCode ()
返回对象的哈希码值。 为了散列表的好处而支持该方法,例如由HashMap
提供的HashMap
。
hashCode
的总合同是:
hashCode
method must consistently return the same integer, provided no information used in equals
comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. equals(Object)
method, then calling the hashCode
method on each of the two objects must produce the same integer result. equals(java.lang.Object)
method, then calling the hashCode
method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables. 尽可能合理实用,类Object
定义的hashCode方法确实为不同的对象返回不同的整数。 (这通常通过将对象的内部地址转换为整数来实现,但Java TM编程语言不需要此实现技术。)
Returns | |
---|---|
int |
a hash code value for this object. |
int intValue ()
以int值返回此BigInteger
。 如果this
太大而不能表示为int,则返回this % (1 << 32)
。
Returns | |
---|---|
int |
the numeric value represented by this object after conversion to type int . |
boolean isProbablePrime (int certainty)
测试这个BigInteger
是否可能是最好的。 如果返回true
,则这是素数,其概率大于1 - 1/2<sup>certainty</sup>)
。 如果返回false
,那么这肯定是合成的。 如果参数certainty
<= 0,那么此方法返回true。
Parameters | |
---|---|
certainty |
int : tolerated primality uncertainty. |
Returns | |
---|---|
boolean |
true , if this is probably prime, false otherwise. |
long longValue ()
以长BigInteger
值返回此BigInteger
。 如果this
太大而不能表示为long,则返回this % pow(2, 64)
。
Returns | |
---|---|
long |
the numeric value represented by this object after conversion to type long . |
BigInteger max (BigInteger value)
返回此 BigInteger
和 value
。
Parameters | |
---|---|
value |
BigInteger : value to be used to compute the maximum with this |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
NullPointerException |
if value == null |
BigInteger min (BigInteger value)
返回此 BigInteger
和 value
。
Parameters | |
---|---|
value |
BigInteger : value to be used to compute the minimum with this . |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
NullPointerException |
if value == null . |
BigInteger mod (BigInteger m)
返回BigInteger
,其值是this mod m
。 模数m
必须是正数。 结果保证在[0, m)
(包括0,不包括m)的区间内。 此函数的行为与为内置int
定义的%运算符的行为不同。
Parameters | |
---|---|
m |
BigInteger : the modulus. |
Returns | |
---|---|
BigInteger |
this mod m . |
Throws | |
---|---|
NullPointerException |
if m == null . |
ArithmeticException |
if m < 0 . |
BigInteger modInverse (BigInteger m)
返回BigInteger
,其值是1/this mod m
。 模数m
必须是正数。 结果保证在[0, m)
(包括0,不包括m)的区间内。 如果this
与m不this
,则抛出异常。
Parameters | |
---|---|
m |
BigInteger : the modulus. |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
NullPointerException |
if m == null |
ArithmeticException |
if m < 0 or if this is not relatively prime to m |
BigInteger modPow (BigInteger exponent, BigInteger modulus)
返回BigInteger
,其值是pow(this, exponent) mod modulus
。 模量必须是正值。 结果保证在[0, modulus)
。 如果指数为负数,则计算pow(this.modInverse(modulus), -exponent) mod modulus
。 只有当this
与模数相关时才会出现这种情况,否则会引发异常。
Parameters | |
---|---|
exponent |
BigInteger
|
modulus |
BigInteger
|
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
NullPointerException |
if modulus == null or exponent == null . |
ArithmeticException |
if modulus < 0 or if exponent < 0 and not relatively prime to modulus . |
BigInteger multiply (BigInteger value)
返回 BigInteger
其值为 this * value
。
Parameters | |
---|---|
value |
BigInteger
|
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
NullPointerException |
if value == null . |
BigInteger nextProbablePrime ()
返回可能为BigInteger
实例的最小整数x> this
。 返回的BigInteger
是素数的概率大于1 - 1/2<sup>100</sup>
。
Returns | |
---|---|
BigInteger |
smallest integer > this which is probably prime. |
Throws | |
---|---|
ArithmeticException |
if this < 0 . |
BigInteger not ()
返回BigInteger
,其值是~this
。 该操作的结果是-this-1
。
实施注意:不建议使用此方法,因为当前的实施效率不高。
Returns | |
---|---|
BigInteger |
BigInteger or (BigInteger value)
返回 BigInteger
,其值是 this | value
。
实施注意:不建议使用此方法,因为当前的实施效率不高。
Parameters | |
---|---|
value |
BigInteger : value to be or'ed with this . |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
NullPointerException |
if value == null . |
BigInteger pow (int exp)
返回 BigInteger
,其值是 pow(this, exp)
。
Parameters | |
---|---|
exp |
int
|
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
ArithmeticException |
if exp < 0 . |
BigInteger probablePrime (int bitLength, Random random)
返回BigInteger
范围内的随机正BigInteger
[0, pow(2, bitLength)-1]
,这可能是质数。 返回的BigInteger
为素数的概率大于1 - 1/2<sup>100</sup>)
。
Parameters | |
---|---|
bitLength |
int : length of the new BigInteger in bits. |
random |
Random
|
Returns | |
---|---|
BigInteger |
probably prime random BigInteger instance. |
Throws | |
---|---|
IllegalArgumentException |
if bitLength < 2 . |
BigInteger remainder (BigInteger divisor)
返回BigInteger
,其值是this % divisor
。 关于符号,这个方法与int运算符具有相同的行为:余数的符号与此符号相同。
Parameters | |
---|---|
divisor |
BigInteger : value by which this is divided. |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
NullPointerException |
if divisor == null . |
ArithmeticException |
if divisor == 0 . |
BigInteger setBit (int n)
返回BigInteger
具有相同二进制表示为this
但在位置n组所述位。 结果相当于this | pow(2, n)
。
实施注意:不建议使用此方法,因为当前的实施效率不高。
Parameters | |
---|---|
n |
int : position where the bit in this has to be set. |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
ArithmeticException |
if n < 0 . |
BigInteger shiftLeft (int n)
返回BigInteger
,其值是this << n
。 如果n> = 0,结果等于this * pow(2, n)
移位距离可能为负,这意味着this
右移。 结果对应于floor(this / pow(2, -n))
。
实现注意:不建议在负值上使用此方法,因为当前的实现效率不高。
Parameters | |
---|---|
n |
int : shift distance. |
Returns | |
---|---|
BigInteger |
this << n if n >= 0 ; this >> (-n) . otherwise |
BigInteger shiftRight (int n)
返回BigInteger
,其值是this >> n
。 对于负面的论点,结果也是负面的。 移位距离可能为负,这意味着this
向左移位。
实现注意:不建议在负值上使用此方法,因为当前的实现效率不高。
Parameters | |
---|---|
n |
int : shift distance |
Returns | |
---|---|
BigInteger |
this >> n if n >= 0 ; this << (-n) otherwise |
int signum ()
返回这个 BigInteger
的符号。
Returns | |
---|---|
int |
-1 if this < 0 , 0 if this == 0 , 1 if this > 0 . |
BigInteger subtract (BigInteger value)
返回 BigInteger
,其值是 this - value
。
Parameters | |
---|---|
value |
BigInteger
|
Returns | |
---|---|
BigInteger |
boolean testBit (int n)
测试this
中位置n的位是否已设置。 结果相当于this & pow(2, n) != 0
。
实施注意:不建议使用此方法,因为当前的实施效率不高。
Parameters | |
---|---|
n |
int : position where the bit in this has to be inspected. |
Returns | |
---|---|
boolean |
Throws | |
---|---|
ArithmeticException |
if n < 0 . |
byte[] toByteArray ()
以字节数组的形式返回此 BigInteger
的二进制补码表示形式。
Returns | |
---|---|
byte[] |
String toString ()
以十进制形式返回此 BigInteger
的字符串表示形式。
Returns | |
---|---|
String |
a string representation of the object. |
String toString (int radix)
返回一个字符串,其中包含此基数为BigInteger
的字符串表示形式。 如果radix < Character.MIN_RADIX
或radix > Character.MAX_RADIX
则返回一个十进制表示。 字符串表示的字符是用方法Character.forDigit
生成的。
Parameters | |
---|---|
radix |
int : base to be used for the string representation. |
Returns | |
---|---|
String |
BigInteger valueOf (long value)
返回 BigInteger
其值等于 value
。
Parameters | |
---|---|
value |
long
|
Returns | |
---|---|
BigInteger |
BigInteger xor (BigInteger value)
返回 BigInteger
其值为 this ^ value
。
实施注意:不建议使用此方法,因为当前的实施效率不高。
Parameters | |
---|---|
value |
BigInteger : value to be xor'ed with this |
Returns | |
---|---|
BigInteger |
Throws | |
---|---|
NullPointerException |
if value == null |