java.Math BigInteger

The BigInteger is an Immutable arbitrary-precision integers. All operations behave as if BigIntegers were represented in two’s-complement notation (like Java’s primitive integer types). BigInteger provides analogues to all of Java’s primitive integer operators, and all relevant methods from java.lang.Math. Additionally, BigInteger provides operations for modular arithmetic, GCD calculation, primality testing, prime generation, bit manipulation, and a few other miscellaneous operations. All the good stuff in dealing with Mathematical operations are available in BigInteger class.

Semantics of arithmetic operations exactly mimic those of Java’s integer arithmetic operators, as defined in The Java Language Specification. For example, division by zero throws an ArithmeticException, and division of a negative by a positive yields a negative (or zero) remainder. All of the details in the Spec concerning overflow are ignored, as BigIntegers are made as large as necessary to accommodate the results of an operation.

In dealing with BigInteger, usual mathematical operators such as + – * / are not applicable, instead methods such as add,subtract,multiply and divide are available to server this purpose.

BigInteger Class Syntax

public class BigInteger
extends Number
implements Comparable<BigInteger>

Java BigInteger Compatibility

The BigInteger class has been around since Java 1.1 though some of it’s methods were added on the later releases.

BigInteger Method Usage Examples

The following are the detailed list of BigInteger methods and descriptions. We have also provided links to examples of each method on the list.

Modifier and Type Method and Description
 BigInteger abs()
Basically this method returns the absolute value of this BigInteger object. This is very useful if we are dealing only with unsigned integer.
BigInteger add(BigInteger val)
This method performs addition of this BigInteger and the method argument. The BigInteger doesn’t conform with the normal mathematical operation such as +, -, /,*. Instead of using the mathematical operators, methods such as add() were exposed to provide facility of mathematical operations.
BigInteger and(BigInteger val)
Returns a BigInteger whose value is (this & val). (This method returns a negative BigInteger if and only if this and val are both negative.)
BigInteger andNot(BigInteger val)
Returns a BigInteger whose value is (this & ~val). This method, which is equivalent to and(val.not()), is provided as a convenience for masking operations. (This method returns a negative BigInteger if and only if this is negative and val is positive.)
int bitCount()
Returns the number of bits in the two’s complement representation of this BigInteger that differ from its sign bit. This method is useful when implementing bit-vector style sets atop BigIntegers.
int bitLength()
Returns the number of bits in the minimal two’s-complement representation of this BigInteger, excluding a sign bit. For positive BigIntegers, this is equivalent to the number of bits in the ordinary binary representation.
byte byteValueExact()
Converts this BigInteger to a byte, checking for lost information. If the value of this BigInteger is out of the range of the byte type, then an ArithmeticException is thrown.
BigInteger clearBit(int n)
Returns a BigInteger whose value is equivalent to this BigInteger with the designated bit cleared.
int compareTo(BigInteger val)
Compares this BigInteger with the specified BigInteger.
BigInteger divide(BigInteger val)
Returns a BigInteger whose value is (this / val).
BigInteger[] divideAndRemainder(BigInteger val)
Returns an array of two BigIntegers containing (this / val) followed by (this % val).
double doubleValue()
Converts this BigInteger to a double.
boolean equals(Object x)
Compares this BigInteger with the specified Object for equality.
BigInteger flipBit(int n)
Returns a BigInteger whose value is equivalent to this BigInteger with the designated bit flipped.
float floatValue()
Converts this BigInteger to a float.
BigInteger gcd(BigInteger val)
Returns a BigInteger whose value is the greatest common divisor of abs(this) and abs(val).
int getLowestSetBit()
Returns the index of the rightmost (lowest-order) one bit in this BigInteger (the number of zero bits to the right of the rightmost one bit).
int hashCode()
Returns the hash code for this BigInteger.
int intValue()
Converts this BigInteger to an int.
int intValueExact()
Converts this BigInteger to an int, checking for lost information.
boolean isProbablePrime(int certainty)
Returns true if this BigInteger is probably prime, false if it’s definitely composite.
long longValue()
Converts this BigInteger to a long.
long longValueExact()
Converts this BigInteger to a long, checking for lost information.
BigInteger max(BigInteger val)
Returns the maximum of this BigInteger and val.
BigInteger min(BigInteger val)
Returns the minimum of this BigInteger and val.
BigInteger mod(BigInteger m)
Returns a BigInteger whose value is (this mod m).
BigInteger modInverse(BigInteger m)
Returns a BigInteger whose value is (this-1 mod m).
BigInteger modPow(BigInteger exponent, BigInteger m)
Returns a BigInteger whose value is (thisexponent mod m).
BigInteger multiply(BigInteger val)
Returns a BigInteger whose value is (this * val).
BigInteger negate()
Returns a BigInteger whose value is (-this).
BigInteger nextProbablePrime()
Returns the first integer greater than this BigInteger that is probably prime.
BigInteger not()
Returns a BigInteger whose value is (~this).
BigInteger or(BigInteger val)
Returns a BigInteger whose value is (this | val).
BigInteger pow(int exponent)
Returns a BigInteger whose value is (thisexponent).
static BigInteger probablePrime(int bitLength, Random rnd)
Returns a positive BigInteger that is probably prime, with the specified bitLength.
BigInteger remainder(BigInteger val)
Returns a BigInteger whose value is (this % val).
BigInteger setBit(int n)
Returns a BigInteger whose value is equivalent to this BigInteger with the designated bit set.
BigInteger shiftLeft(int n)
Returns a BigInteger whose value is (this << n).
BigInteger shiftRight(int n)
Returns a BigInteger whose value is (this >> n).
short shortValueExact()
Converts this BigInteger to a short, checking for lost information.
int signum()
Returns the signum function of this BigInteger.
BigInteger subtract(BigInteger val)
Returns a BigInteger whose value is (this – val).
boolean testBit(int n)
Returns true if and only if the designated bit is set.
byte[] toByteArray()
Returns a byte array containing the two’s-complement representation of this BigInteger.
String toString()
Returns the decimal String representation of this BigInteger.
String toString(int radix)
Returns the String representation of this BigInteger in the given radix.
static BigInteger valueOf(long val)
Returns a BigInteger whose value is equal to that of the specified long.
BigInteger xor(BigInteger val)
Returns a BigInteger whose value is (this ^ val).