java.math.BigInteger
Class which represents immutable arbritary precision integer numbers.
This class provides methods for arithmetic operations and methods
for the comparison of two instances.
Summary
Constants
Public Constructors
Public Methods
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Constants
public
static
final
BigInteger
ONE
The BigInteger constatn 1.
public
static
final
BigInteger
TEN
The BigInteger constant 10.
public
static
final
BigInteger
ZERO
The BigInteger constant 0.
Public Constructors
public
BigInteger(int numBits, Random rnd)
Constructs a random non-negative
BigInteger instance in the range
[0, 2^(numBits)-1].
Parameters
| numBits
| maximum lenght of the new BigInteger in bits. |
| rnd
| random generator used to generate the new BigInteger. |
public
BigInteger(int bitLength, int certainty, Random rnd)
Constructs a random positive
BigInteger instance in the range [0,
2^(bitLength)-1] which is probably prime. The probability that the
returned
BigInteger is prime is beyond (1-1/2^certainty).
Parameters
| bitLength
| lenght of the new BigInteger in bits. |
| certainty
| tolerated primality uncertainty. |
| rnd
| random generator used to generate the new BigInteger. |
public
BigInteger(String val)
Constructs a new
BigInteger instance from the string
representation. The string representation consists of an optional minus
sign followed by a non-empty sequence of decimal digits.
Parameters
| val
| string representation of the new BigInteger. |
public
BigInteger(String val, int radix)
Constructs a new
BigInteger instance from the string
representation. The string representation consists of an optional minus
sign followed by a non-empty sequence of digits in the specified radix.
For the conversion the method
Character.digit(char, radix) is
used.
Parameters
| val
| string representation of the new BigInteger. |
| radix
| the base to be used for the conversion. |
public
BigInteger(int signum, byte[] magnitude)
Constructs a new
BigInteger instance with the given sign and the
given magnitude. The sign is given as an integer (-1 for negative, 0 for
zero, 1 for positive). The magnitude is specified as a byte array. The
most significant byte is the entry at index 0.
Parameters
| signum
| sign of the new BigInteger (-1 for negative, 0 for
zero, 1 for positive). |
| magnitude
| magnitude of the new BigInteger with the most
significant byte first. |
public
BigInteger(byte[] val)
Constructs a new
BigInteger from the given two's complement
representation. The most significant byte is the entry at index 0. The
most significant bit of this entry determines the sign of the new
BigInteger instance. The given array must not be empty.
Parameters
| val
| two's complement representation of the new BigInteger. |
Public Methods
Returns a new
BigInteger whose value is the absolute value of
this.
Returns a new
BigInteger whose value is
this + val.
Parameters
| val
| value to be added to this. |
Returns a new
BigInteger whose value is
this & val.
Parameters
| val
| value to be and'ed with this. |
Returns a new
BigInteger whose value is
this & ~val.
Evaluating
x.andNot(val) returns the same result as
x.and(val.not()).
Parameters
| val
| value to be not'ed and then and'ed with this. |
public
int
bitCount()
Returns the number of bits in the binary representation of
this
wich differ from the sign bit. If
this is positive the result is
equivalent to the number of bits set in the binary representation of
this. If
this is netative the result is equivalent to
the number of bits set in the binary representation of
-this-1.
Returns
- number of bits in the binary representation of
this wich
differ from the sign bit.
public
int
bitLength()
Returns the number of bits of the binary representation of
this
without the sign bit. For positive values this is equivalent to the
number of bits, and for negative values this is equivalent to the nuber
of bits used to represent -value-1.
Returns
- number of bits of the binary representation of
this
without the sign bit.
public
BigInteger
clearBit(int n)
Returns a new
BigInteger which has the same binary representation
as
this but with the bit at position n cleared. The result is
equivalent to
this & ~(2^n).
Parameters
| n
| position where the bit in this has to be cleared. |
public
int
compareTo(BigInteger val)
Compares this
BigInteger with
val. Returns one of the
three values 1, 0, or -1.
Parameters
| val
| value to be compared with this. |
Returns
- 1 if this > val, -1 if this < val, 0 if this == val.
Returns a new
BigInteger whose value is
this / divisor.
Parameters
| divisor
| value by which this is divided. |
Returns a
BigInteger array which contains
this / divisor
at index 0 and
this % divisor at index 1.
Parameters
| divisor
| value by which this is divided. |
Returns
[this / divisor, this % divisor].
public
double
doubleValue()
Returns this
BigInteger as an double value. If
this is
too big to be represented as an double, then
Double.POSITIVE_INFINITY or
Double.NEGATIVE_INFINITY is
returned. Note, that not all integers x in the range [-Dobule.MAX_VALUE,
Dobule.MAX_VALUE] can be represented as a double. The double
representation has a mantissa of length 53. For example, 2^53+1 =
9007199254740993 is returned as double 9007199254740992.0.
Returns
- this
BigInteger as a double value.
public
boolean
equals(Object x)
Returns
true if
x is a BigInteger instance and if this
instance is equal to this
BigInteger.
Parameters
| x
| object to be compared with this. |
Returns
- true if x is a BigInteger and this == x.
public
BigInteger
flipBit(int n)
Returns a new
BigInteger which has the same binary representation
as
this but with the bit at position n flipped. The result is
equivalent to
this ^ 2^n.
Parameters
| n
| position where the bit in this has to be flipped. |
public
float
floatValue()
Returns this
BigInteger as an float value. If
this is too
big to be represented as an float, then
Float.POSITIVE_INFINITY
or
Float.NEGATIVE_INFINITY is returned. Note, that not all
integers x in the range [-Float.MAX_VALUE, Float.MAX_VALUE] can be
represented as a float. The float representation has a mantissa of length
24. For example, 2^24+1 = 16777217 is returned as float 16777216.0.
Returns
- this
BigInteger as a float value.
Returns a new
BigInteger whose value is greatest common divisor
of
this and
val. If this==0 and val==0 then zero is
returned, otherwise the result is positive.
Parameters
| val
| value whith which the greatest common divisor is computed. |
public
int
getLowestSetBit()
Returns the position of the lowest set bit in the two's complement
representation of this
BigInteger. If all bits are zero (this=0)
then -1 is returned as result.
Returns
- position of lowest bit if this != 0, -1 otherwise.
public
int
hashCode()
Returns a hash code for this
BigInteger.
public
int
intValue()
Returns this
BigInteger as an int value. If
this is too
big to be represented as an int, then
this % 2^32 is returned.
Returns
- this
BigInteger as an int value.
public
boolean
isProbablePrime(int certainty)
Tests whether this
BigInteger is probably prime. If
true
is returned, then this is prime with a probability beyond
(1-1/2^certainty). If
false is returned, then this is definitely
composite. If the argument
certainty ≤ 0, then this method
returns true.
Parameters
| certainty
| tolerated primality uncertainty. |
Returns
ture, if this is probably prime, false
otherwise.
public
long
longValue()
Returns this
BigInteger as an long value. If
this is too
big to be represented as an long, then
this % 2^64 is returned.
Returns
- this
BigInteger as a long value.
Returns the maximum of this
BigInteger and
val.
Parameters
| val
| value to be used to compute the maximum with this. |
Returns the minimum of this
BigInteger and
val.
Parameters
| val
| value to be used to compute the minimum with this. |
Returns a new
BigInteger whose value is
this mod m. The
modulus
m must be positive. The result is guaranteed to be in the
interval
[0, m) (0 inclusive, m exclusive). The behavior of this
function is not equivalent to the behavior of the % operator defined for
the built-in
int's.
Returns a new
BigInteger whose value is
1/this mod m.
The modulus
m must be positive. The result is guaranteed to be in
the interval
[0, m) (0 inclusive, m exclusive). If
this
is not relatively prime to m, then an exception is thrown.
Returns a new
BigInteger whose value is
this^exponent mod m. The modulus
m must be positive. The
result is guaranteed to be in the interval
[0, m) (0 inclusive, m
exclusive). If the exponent is negative, then
this.modInverse(m)^(-exponent) mod m) is computed. The inverse of
this only exists if
this is relatively prime to m, otherwise an
exception is thrown.
Parameters
| exponent
| the exponent. |
| m
| the modulus. |
Returns a new
BigInteger whose value is
this * val.
Parameters
| val
| value to be multiplied with this. |
Returns a new
BigInteger whose value is the
-this.
public
BigInteger
nextProbablePrime()
Returns the smallest integer x >
this which is probably prime as
a
BigInteger instance. The probability that the returned
BigInteger is prime is beyond (1-1/2^100).
Returns
- smallest integer >
this pwhich is robably prime.
Returns a new
BigInteger whose value is
~this. The
result of this operation is
-this-1.
Returns a new
BigInteger whose value is
this | val.
Parameters
| val
| value to be or'ed with this. |
Returns a new
BigInteger whose value is
this ^ exp.
Parameters
| exp
| exponent to which this is raised. |
public
static
BigInteger
probablePrime(int bitLength, Random rnd)
Returns a random positive
BigInteger instance in the range [0,
2^(bitLength)-1] which is probably prime. The probability that the
returned
BigInteger is prime is beyond (1-1/2^100).
Parameters
| bitLength
| lenght of the new BigInteger in bits |
| rnd
| random generator used to generate the new BigInteger. |
Returns
- probably prime random
BigInteger instance
Returns a new
BigInteger whose value is
this % divisor.
Regarding signs this methods has the same behavior as the % operator on
int's, i.e. the sign of the remainder is the same as the sign of this.
Parameters
| divisor
| value by which this is divided. |
public
BigInteger
setBit(int n)
Returns a new
BigInteger which has the same binary representation
as
this but with the bit at position n set. The result is
equivalent to
this | 2^n.
Parameters
| n
| position where the bit in this has to be set. |
public
BigInteger
shiftLeft(int n)
Returns a new
BigInteger whose value is
this << n. The
result is equvalent to
this * 2^n if n ≥ 0. The shift
distance may be negative which means that
this is shifted right.
The result then corresponds to
floor(this / 2^(-n)).
Returns
- this << n if n >= 0; this >> (-n) otherwise.
public
BigInteger
shiftRight(int n)
Returns a new
BigInteger whose value is
this >> n. For
negative arguments, the result is also negative. The shift distance may
be negative which means that
this is shifted left.
Returns
- this >> n if n >= 0; this << (-n) otherwise.
public
int
signum()
Returns the sign of this
BigInteger.
Returns
- -1 if
this < 0, 0 if this == 0, 1 if
this > 0.
Returns a new
BigInteger whose value is
this - val.
Parameters
| val
| value to be subtracted from this. |
public
boolean
testBit(int n)
Tests whether the bit at position n in
this is set. The result is
equivalent to
this & (2^n) != 0.
Parameters
| n
| position where the bit in this has to be inspected. |
public
byte[]
toByteArray()
Returns the two's complement representation of this BigInteger in a byte
array.
Returns
- two's complement representation of
this.
public
String
toString()
Returns a string representation of this
BigInteger in decimal
form.
Returns
- a string representation of
this in decimal form.
public
String
toString(int radix)
Returns a string containing a string representation of this
BigInteger with base radix. If radix < Character.MIN_RADIX or
radix > Character.MAX_RADIX then a decimal representation is returned.
The characters of the string representation are generated with method
Character.forDigit.
Parameters
| radix
| base to be used for the string representation. |
Returns
- a string representation of this with radix 10.
public
static
BigInteger
valueOf(long val)
Creates a new
BigInteger whose value is equal to the specified
long argument.
Parameters
| val
| the value of the new BigInteger. |
Returns
BigInteger instance with the value val.
Returns a new
BigInteger whose value is
this ^ val.
Parameters
| val
| value to be xor'ed with this. |