java.math.BigInteger
Class which represents immutable arbitrary 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 number
of bits used to represent -value-1.
mc: In other words: the number a can be coded in
a.bitLength() + 1 bits two's complement.
E.g. for a.bitLength() == 31, an int will hold a correctly and
for a.bitLength() == 32 an int will NOT hold a correctly.
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 with 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 . |