Most visited

Recently visited

Added in API level 1

BigInteger

public class BigInteger
extends Number implements Comparable<BigInteger>, Serializable

java.lang.Object
   ↳ java.lang.Number
     ↳ java.math.BigInteger


一个不可变的任意精度有符号整数。

Fast Cryptography

This implementation is efficient for operations traditionally used in cryptography, such as the generation of large prime numbers and computation of the modular inverse.

Slow Two's Complement Bitwise Operations

This API includes operations for bitwise operations in two's complement representation. Two's complement is not the internal representation used by this implementation, so such methods may be inefficient. Use BitSet for high-performance bitwise operations on arbitrarily-large sequences of bits.

Summary

Fields

public static final BigInteger ONE

BigInteger不变1。

public static final BigInteger TEN

BigInteger常数10。

public static final BigInteger ZERO

BigInteger常数0。

Public constructors

BigInteger(int numBits, Random random)

[0, pow(2, numBits)-1]范围内构造一个随机非负 BigInteger实例。

BigInteger(int bitLength, int certainty, Random random)

构造一个随机的 BigInteger实例,范围 [0, pow(2, bitLength)-1] ,这可能是质数。

BigInteger(String value)

构造一个新的 BigInteger ,解析 value

BigInteger(String value, int radix)

通过解析 value构造一个新的 BigInteger实例。

BigInteger(int signum, byte[] magnitude)

用给定的符号和大小构造一个新的 BigInteger实例。

BigInteger(byte[] value)

根据给定的二进制补码表示构造一个新的 BigInteger

Public methods

BigInteger abs()

返回 BigInteger其值为绝对值 this

BigInteger add(BigInteger value)

返回 BigInteger ,其值是 this + value

BigInteger and(BigInteger value)

返回 BigInteger ,其值是 this & value

BigInteger andNot(BigInteger value)

返回 BigInteger ,其值是 this & ~value

int bitCount()

返回 this的二进制补码表示中与符号位不同的位数。

int bitLength()

返回值的二进制补码表示的长度,不用前导零用于正数/不用前导用于负值。

BigInteger clearBit(int n)

返回 BigInteger具有相同的二进制表示为 this但在位置n清除位。

int compareTo(BigInteger value)

将此 BigIntegervalue比较。

BigInteger divide(BigInteger divisor)

返回 BigInteger其值为 this / divisor

BigInteger[] divideAndRemainder(BigInteger divisor)

返回一个两个元件 BigInteger阵列含有 this / divisor在索引0和 this % divisor索引1。

double doubleValue()

以double形式返回此 BigInteger

boolean equals(Object x)

指示其他某个对象是否“等于”这一个。

BigInteger flipBit(int n)

返回 BigInteger具有相同二进制表示为 this但在位置n翻转比特。

float floatValue()

将此 BigInteger作为浮点数返回。

BigInteger gcd(BigInteger value)

返回 BigInteger其值是 thisvalue

int getLowestSetBit()

返回此 BigInteger的二进制补码表示中最低设置位的位置。

int hashCode()

返回对象的哈希码值。

int intValue()

将此 BigInteger作为int值返回。

boolean isProbablePrime(int certainty)

测试这个 BigInteger是否可能是最好的。

long longValue()

以长 BigInteger值返回此 BigInteger

BigInteger max(BigInteger value)

返回此 BigIntegervalue

BigInteger min(BigInteger value)

返回此 BigIntegervalue

BigInteger mod(BigInteger m)

返回 BigInteger ,其值是 this mod m

BigInteger modInverse(BigInteger m)

返回 BigInteger ,其值是 1/this mod m

BigInteger modPow(BigInteger exponent, BigInteger modulus)

返回 BigInteger ,其值是 pow(this, exponent) mod modulus

BigInteger multiply(BigInteger value)

返回 BigInteger ,其值是 this * value

BigInteger negate()

返回 BigInteger其值为 -this

BigInteger nextProbablePrime()

返回可能为 BigInteger实例的最小整数x> this

BigInteger not()

返回 BigInteger ,其值是 ~this

BigInteger or(BigInteger value)

返回 BigInteger ,其值是 this | value

BigInteger pow(int exp)

返回 BigInteger ,其值是 pow(this, exp)

static BigInteger probablePrime(int bitLength, Random random)

返回 BigInteger范围内的随机正 BigInteger [0, pow(2, bitLength)-1] ,这可能是质数。

BigInteger remainder(BigInteger divisor)

返回 BigInteger ,其值是 this % divisor

BigInteger setBit(int n)

返回 BigInteger具有相同二进制表示为 this但在位置n组所述位。

BigInteger shiftLeft(int n)

返回 BigInteger ,其值是 this << n

BigInteger shiftRight(int n)

返回 BigInteger ,其值是 this >> n

int signum()

返回这个 BigInteger的符号。

BigInteger subtract(BigInteger value)

返回 BigInteger ,其值是 this - value

boolean testBit(int n)

测试 this中位置n的位是否已设置。

byte[] toByteArray()

以字节数组的形式返回此 BigInteger的二进制补码表示形式。

String toString()

以十进制形式返回此 BigInteger的字符串表示形式。

String toString(int radix)

返回一个字符串,其中包含此基数为 BigInteger的字符串表示形式。

static BigInteger valueOf(long value)

返回值 BigInteger其值等于 value

BigInteger xor(BigInteger value)

返回 BigInteger ,其值是 this ^ value

Inherited methods

From class java.lang.Number
From class java.lang.Object
From interface java.lang.Comparable

Fields

ONE

Added in API level 1
BigInteger ONE

BigInteger不变1。

TEN

Added in API level 1
BigInteger TEN

常数 BigInteger 10。

ZERO

Added in API level 1
BigInteger ZERO

BigInteger常量0。

Public constructors

BigInteger

Added in API level 1
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

Added in API level 1
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

Added in API level 1
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

Added in API level 1
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

Added in API level 1
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

Added in API level 1
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.

Public methods

abs

Added in API level 1
BigInteger abs ()

返回 BigInteger其值为绝对值 this

Returns
BigInteger

add

Added in API level 1
BigInteger add (BigInteger value)

返回 BigInteger ,其值是 this + value

Parameters
value BigInteger
Returns
BigInteger

and

Added in API level 1
BigInteger and (BigInteger value)

返回 BigInteger ,其值是 this & value

实施注意:不建议使用此方法,因为当前的实施效率不高。

Parameters
value BigInteger: value to be and'ed with this.
Returns
BigInteger
Throws
NullPointerException if value == null.

andNot

Added in API level 1
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.

bitCount

Added in API level 1
int bitCount ()

返回this的二进制补码表示中与符号位不同的位数。 如果this为负数,则结果等于-this - 1的二进制补码表示中设置的-this - 1

使用 bitLength(0)以位为单位查找二进制值的长度。

实施注意:不建议使用此方法,因为当前的实施效率不高。

Returns
int

bitLength

Added in API level 1
int bitLength ()

返回值的二进制补码表示的长度,不用前导零用于正数/不用前导用于负值。

this的二进制补码表示 this至少为 bitLength() + 1比特。

该值将适合 int如果 bitLength() < 32long如果 bitLength() < 64

Returns
int the length of the minimal two's complement representation for this without the sign bit.

clearBit

Added in API level 1
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.

compareTo

Added in API level 1
int compareTo (BigInteger value)

将此BigIntegervalue比较。 返回-1如果this < value0如果this == value1如果this > value

Parameters
value BigInteger: value to be compared with this.
Returns
int
Throws
NullPointerException if value == null.

divide

Added in API level 1
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.

divideAndRemainder

Added in API level 1
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.

也可以看看:

doubleValue

Added in API level 1
double doubleValue ()

将此BigInteger作为双BigInteger返回。 如果this太大而无法表示为双Double.NEGATIVE_INFINITY则返回Double.POSITIVE_INFINITYDouble.NEGATIVE_INFINITY 请注意,并非[-Double.MAX_VALUE, Double.MAX_VALUE]范围内的所有整数都可以精确地表示为double。

Returns
double the numeric value represented by this object after conversion to type double.

equals

Added in API level 1
boolean equals (Object x)

指示其他某个对象是否“等于”这一个。

equals方法在非空对象引用上实现等价关系:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values 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.
  • For any non-null reference value x, x.equals(null) should return false.

对于类Objectequals方法实现了对象上最可能的等价关系; 即对于任何非空参考值xy ,当且仅当xy引用同一对象( 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.

flipBit

Added in API level 1
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.

floatValue

Added in API level 1
float floatValue ()

将此BigInteger作为浮点数返回。 如果this太大而无法表示为浮点数,则返回Float.POSITIVE_INFINITYFloat.NEGATIVE_INFINITY 请注意,并非所有范围为[-Float.MAX_VALUE, Float.MAX_VALUE]整数都可以精确地表示为浮点数。

Returns
float the numeric value represented by this object after conversion to type float.

gcd

Added in API level 1
BigInteger gcd (BigInteger value)

返回BigInteger其值是thisvalue 如果this == 0value == 0则返回零,否则结果为肯定。

Parameters
value BigInteger: value with which the greatest common divisor is computed.
Returns
BigInteger
Throws
NullPointerException if value == null.

getLowestSetBit

Added in API level 1
int getLowestSetBit ()

返回此BigInteger的二进制补码表示中最低设置位的位置。 如果所有位均为零(此== 0),则返回-1作为结果。

实施注意:不建议使用此方法,因为当前的实施效率不高。

Returns
int

hashCode

Added in API level 1
int hashCode ()

返回对象的哈希码值。 为了散列表的好处而支持该方法,例如由HashMap提供的HashMap

hashCode的总合同是:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the 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.
  • If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the 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.

intValue

Added in API level 1
int intValue ()

以int值返回此BigInteger 如果this太大而不能表示为int,则返回this % (1 << 32)

Returns
int the numeric value represented by this object after conversion to type int.

isProbablePrime

Added in API level 1
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.

longValue

Added in API level 1
long longValue ()

以长BigInteger值返回此BigInteger 如果this太大而不能表示为long,则返回this % pow(2, 64)

Returns
long the numeric value represented by this object after conversion to type long.

max

Added in API level 1
BigInteger max (BigInteger value)

返回此 BigIntegervalue

Parameters
value BigInteger: value to be used to compute the maximum with this
Returns
BigInteger
Throws
NullPointerException if value == null

min

Added in API level 1
BigInteger min (BigInteger value)

返回此 BigIntegervalue

Parameters
value BigInteger: value to be used to compute the minimum with this.
Returns
BigInteger
Throws
NullPointerException if value == null.

mod

Added in API level 1
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.

modInverse

Added in API level 1
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

modPow

Added in API level 1
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.

multiply

Added in API level 1
BigInteger multiply (BigInteger value)

返回 BigInteger其值为 this * value

Parameters
value BigInteger
Returns
BigInteger
Throws
NullPointerException if value == null.

negate

Added in API level 1
BigInteger negate ()

返回 BigInteger其值为 -this

Returns
BigInteger

nextProbablePrime

Added in API level 1
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.

not

Added in API level 1
BigInteger not ()

返回BigInteger ,其值是~this 该操作的结果是-this-1

实施注意:不建议使用此方法,因为当前的实施效率不高。

Returns
BigInteger

or

Added in API level 1
BigInteger or (BigInteger value)

返回 BigInteger ,其值是 this | value

实施注意:不建议使用此方法,因为当前的实施效率不高。

Parameters
value BigInteger: value to be or'ed with this.
Returns
BigInteger
Throws
NullPointerException if value == null.

pow

Added in API level 1
BigInteger pow (int exp)

返回 BigInteger ,其值是 pow(this, exp)

Parameters
exp int
Returns
BigInteger
Throws
ArithmeticException if exp < 0.

probablePrime

Added in API level 1
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.

remainder

Added in API level 1
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.

setBit

Added in API level 1
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.

shiftLeft

Added in API level 1
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

shiftRight

Added in API level 1
BigInteger shiftRight (int n)

返回BigInteger ,其值是this >> n 对于负面的论点,结果也是负面的。 移位距离可能为负,这意味着this向左移位。

实现注意:不建议在负值上使用此方法,因为当前的实现效率不高。

Parameters
n int: shift distance
Returns
BigInteger this >> n if n >= 0; this << (-n) otherwise

signum

Added in API level 1
int signum ()

返回这个 BigInteger的符号。

Returns
int -1 if this < 0, 0 if this == 0, 1 if this > 0.

subtract

Added in API level 1
BigInteger subtract (BigInteger value)

返回 BigInteger ,其值是 this - value

Parameters
value BigInteger
Returns
BigInteger

testBit

Added in API level 1
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.

toByteArray

Added in API level 1
byte[] toByteArray ()

以字节数组的形式返回此 BigInteger的二进制补码表示形式。

Returns
byte[]

toString

Added in API level 1
String toString ()

以十进制形式返回此 BigInteger的字符串表示形式。

Returns
String a string representation of the object.

toString

Added in API level 1
String toString (int radix)

返回一个字符串,其中包含此基数为BigInteger的字符串表示形式。 如果radix < Character.MIN_RADIXradix > Character.MAX_RADIX则返回一个十进制表示。 字符串表示的字符是用方法Character.forDigit生成的。

Parameters
radix int: base to be used for the string representation.
Returns
String

valueOf

Added in API level 1
BigInteger valueOf (long value)

返回 BigInteger其值等于 value

Parameters
value long
Returns
BigInteger

xor

Added in API level 1
BigInteger xor (BigInteger value)

返回 BigInteger其值为 this ^ value

实施注意:不建议使用此方法,因为当前的实施效率不高。

Parameters
value BigInteger: value to be xor'ed with this
Returns
BigInteger
Throws
NullPointerException if value == null

Hooray!