home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Java Fundamental Classes Reference

Previous Chapter 14
The java.math Package
Next
 

BigInteger

Name

BigInteger

Synopsis

Class Name:

java.math.BigInteger

Superclass:

java.lang.Number

Immediate Subclasses:

None

Interfaces Implemented:

None

Availability:

New as of JDK 1.1

Description

The BigInteger class represents an arbitrary-precision integer value. You should use this class if a long is not big enough for your purposes. The number in a BigInteger is represented by a sign value and a magnitude, which is an arbitrarily large array of bytes. A BigInteger cannot overflow.

Most of the methods in BigInteger perform mathematical operations or make comparisons with other BigInteger objects. BigInteger also defines some methods for handling modular arithmetic and determining primality that are needed for cryptographic purposes.

Class Summary

public class java.math.BigInteger extends java.lang.Number {
  // Constructors
  public BigInteger(byte[] val);
  public BigInteger(int signum, byte[] magnitude);
  public BigInteger(String val);
  public BigInteger(String val, int radix);
  public BigInteger(int numBits, Random rndSrc);
  public BigInteger(int bitLength, int certainty, Random rnd);
  // Class Methods
  public static BigInteger valueOf(long val);
  // Instance Methods
  public BigInteger abs();
  public BigInteger add(BigInteger val);
  public BigInteger and(BigInteger val);
  public BigInteger andNot(BigInteger val);
  public int bitCount();
  public int bitLength();
  public BigInteger clearBit(int n);
  public int compareTo(BigInteger val);
  public BigInteger divide(BigInteger val);
  public BigInteger[] divideAndRemainder(BigInteger val);
  public double doubleValue();
  public boolean equals(Object x); 
  public BigInteger flipBit(int n);
  public float floatValue();
  public BigInteger gcd(BigInteger val);
  public int getLowestSetBit();
  public int hashCode();
  public int intValue();
  public boolean isProbablePrime(int certainty);
  public long longValue();
  public BigInteger max(BigInteger val);
  public BigInteger min(BigInteger val);
  public BigInteger mod(BigInteger m);
  public BigInteger modInverse(BigInteger m);
  public BigInteger modPow(BigInteger exponent, BigInteger m);
  public BigInteger multiply(BigInteger val);
  public BigInteger negate();
  public BigInteger not();
  public BigInteger or(BigInteger val);
  public BigInteger pow(int exponent);
  public BigInteger remainder(BigInteger val);
  public BigInteger setBit(int n);
  public BigInteger shiftLeft(int n);
  public BigInteger shiftRight(int n);
  public int signum();
  public BigInteger subtract(BigInteger val);
  public boolean testBit(int n);
  public byte[] toByteArray();
  public String toString();
  public String toString(int radix);
  public BigInteger xor(BigInteger val);
}

Constructors

BigInteger

public BigInteger(byte[] val) throws NumberFormatException

Parameters

val

The initial value.

Throws

NumberFormatException

If the array does not contain any bytes.

Description

This constructor creates a BigInteger with the given initial value. The value is expressed as a two's complement signed integer, with the most significant byte in the first position (val[0]) of the array (big-endian). The most significant bit of the most significant byte is the sign bit.

 public BigInteger(int signum, byte[] magnitude) throws NumberFormatException 

Parameters

signum

The sign of the value: -1 indicates negative, 0 indicates zero, and 1 indicates positive.

magnitude

The initial magnitude of the value.

Throws

NumberFormatException

If signum is invalid or if signum is 0 but magnitude is not 0.

Description

This constructor creates a BigInteger with the given initial value and sign. The magnitude is expressed as a big-endian byte array.

public BigInteger(String val) throws NumberFormatException

Parameters

val

The initial value.

Throws

NumberFormatException

If the string cannot be parsed into a valid BigInteger.

Description

This constructor creates a BigInteger with the initial value specified by the String. The string can contain an optional minus sign followed by zero or more decimal digits. The mapping from characters to digits is provided by the Character.digit() method.

 public BigInteger(String val, int radix) throws NumberFormatException 

Parameters

val

The initial value.

radix

The radix to use to parse the given string.

Throws

NumberFormatException

If the string cannot be parsed, or if the radix is not in the allowed range (Character.MIN_RADIX through Character.MAX_RADIX).

Description

This constructor creates a BigInteger with the initial value specified by the String using the given radix. The string can contain an optional minus sign followed by zero or more digits in the specified radix. The mapping from characters to digits is provided by the Character.digit() method.

 public BigInteger(int numBits, Random rndSrc) throws IllegalArgumentException 

Parameters

numBits

The maximum number of bits in the returned number.

rndSrc

The source of the random bits.

Throws

IllegalArgumentException

If numBits is less than zero.

Description

This constructor creates a random BigInteger in the range 0 to 2^numBits -1.

public BigInteger(int bitLength, int certainty, Random rnd)

Parameters

bitLength

The maximum number of bits in the returned number.

certainty

The certainty that the returned value is a prime number.

rnd

The source of the random bits.

Throws

ArithmeticException

If numBits is less than 2.

Description

This constructor creates a random BigInteger in the range 0 to 2^numBits-1 that is probably a prime number. The probability that the returned number is prime is greater than 1-.5^certainty. In other words, the higher the value of certainty, the more likely the BigInteger is to be prime, and also the longer it takes for the constructor to create the BigInteger.

Class Methods

valueOf

public static BigInteger valueOf(long val)

Parameters

val

The initial value.

Returns

A BigInteger that represents the given value.

Description

This method creates a BigInteger from the given long value.

Instance Methods

abs

public BigInteger abs()

Returns

A BigInteger that contains the absolute value of this number.

Description

This method returns the absolute value of this BigInteger. If this BigInteger is nonnegative, it is returned. Otherwise, a new BigInteger that contains the absolute value of this BigInteger is returned.

add

public BigInteger add(BigInteger val) throws ArithmeticException

Parameters

val

The number to be added.

Returns

A new BigInteger that contains the sum of this number and the given value.

Throws

ArithmeticException

If any kind of arithmetic error occurs.

Description

This method returns the sum of this BigInteger and the given BigInteger as a new BigInteger.

and

public BigInteger and(BigInteger val)

Parameters

val

The number to be ANDed.

Returns

A new BigInteger that contains the bitwise AND of this number and the given value.

Description

This method returns the bitwise AND of this BigInteger and the supplied BigInteger as a new BigInteger.

andNot

public BigInteger andNot(BigInteger val)

Parameters

val

The number to be combined with this BigInteger.

Returns

A new BigInteger that contains the bitwise AND of this number and the bitwise negation of the given value.

Description

This method returns the bitwise AND of this BigInteger and the bitwise negation of the given BigInteger as a new BigInteger. Calling this method is equivalent to calling and(val.not()).

bitCount

public int bitCount()

Returns

The number of bits that differ from this BigInteger's sign bit.

Description

This method returns the number of bits in the two's complement representation of this BigInteger that differ from the sign bit of this BigInteger.

bitLength

public int bitLength()

Returns

The number of bits needed to represent this number, excluding a sign bit.

Description

This method returns the minimum number of bits needed to represent this number, not counting a sign bit.

clearBit

public BigInteger clearBit(int n) throws ArithmeticException

Parameters

n

The bit to clear.

Returns

A new BigInteger that contains the value of this BigInteger with the given bit cleared.

Throws

ArithmeticException

If n is less than 0.

Description

This method returns a new BigInteger that is equal to this BigInteger, except that the given bit is cleared, or set to zero.

compareTo

public int compareTo(BigInteger val)

Parameters

val

The value to be compared.

Returns

-1 if this number is less than val, 0 if this number is equal to val, or 1 if this number is greater than val.

Description

This method compares this BigInteger to the given BigInteger and returns a value that indicates the result of the comparison. This method can be used to implement all six of the standard boolean comparison operators: ==, !=, <=, <, >=, and >.

divide

public BigInteger divide(BigInteger val) throws ArithmeticException

Parameters

val

The divisor.

Returns

A new BigInteger that contains the result (quotient) of dividing this number by the given value.

Throws

ArithmeticException

If val is zero.

Description

This method returns the quotient that results from dividing this BigInteger by the given BigInteger as a new BigInteger. Any fractional remainder is discarded.

divideAndRemainder

 public BigInteger[] divideAndRemainder(BigInteger val) throws ArithmeticException 

Parameters

val

The divisor.

Returns

An array of BigInteger objects that contains the quotient and remainder (in that order) that result from dividing this number by the given value.

Throws

ArithmeticException

If val is zero.

Description

This method returns the quotient and remainder that results from dividing this BigInteger by the given BigInteger as an array of new BigInteger objects. The first element of the array is equal to divide(val); the second element is equal to remainder(val).

doubleValue

public double doubleValue()

Returns

The value of this BigInteger as a double.

Overrides

Number.doubleValue()

Description

This method returns the value of this BigInteger as a double. If the value exceeds the limits of a double, Double.POSITIVE_INFINITY or Double.NEGATIVE_INFINITY is returned.

equals

public boolean equals(Object x)

Parameters

x

The object to be compared with this object.

Returns

true if the objects are equal; false if they are not.

Overrides

Object.equals()

Description

This method returns true if x is an instance of BigInteger, and it represents the same value as this BigInteger.

flipBit

public BigInteger flipBit(int n)

Parameters

n

The bit to toggle.

Returns

A new BigInteger that contains the value of this BigInteger with the given bit toggled.

Throws

ArithmeticException

If n is less than 0.

Description

This method returns a new BigInteger that is equal to this BigInteger, except that the given bit is toggled. In other words, if the given bit is 0, it is set to one, or if it is 1, it is set to zero.

floatValue

public float floatValue()

Returns

The value of this BigInteger as a float.

Overrides

Number.floatValue()

Description

This method returns the value of this BigInteger as a float. If the value exceeds the limits of a float, Float.POSITIVE_INFINITY or Float.NEGATIVE_INFINITY is returned.

gcd

public BigInteger gcd(BigInteger val)

Parameters

val

The number to be compared.

Returns

A new BigInteger that contains the greatest common denominator of this number and the given number.

Description

This method calculates the greatest common denominator of the absolute value of this BigInteger and the absolute value of the given BigInteger, and returns it as a new BigInteger. If both values are 0, the method returns a BigInteger that contains the value 0.

getLowestSetBit

public int getLowestSetBit()

Returns

The index of the lowest-order bit with a value of 1, or -1 if there are no bits that are 1.

Description

This method returns the index of the lowest-order, or rightmost, bit with a value of 1.

hashCode

public int hashCode()

Returns

A hashcode for this object.

Overrides

Object.hashCode()

Description

This method returns a hashcode for this BigInteger.

intValue

public int intValue()

Returns

The value of this BigInteger as an int.

Overrides

Number.intValue()

Description

This method returns the value of this BigInteger as an int. If the value exceeds the limits of an int, the excessive high-order bits are discarded.

isProbablePrime

public boolean isProbablePrime(int certainty)

Parameters

certainty

The "certainty" that this number is prime, where a higher value indicates more certainty.

Returns

true if this number is probably prime; false if it is definitely not prime.

Description

This method returns true if this number has a probability of being prime that is greater than 1-.5^certainty. If the number is definitely not prime, false is returned.

longValue

public long longValue()

Returns

The value of this BigInteger as a long.

Overrides

Number.longValue()

Description

This method returns the value of this BigInteger as a long. If the value exceeds the limits of a long, the excessive high-order bits are discarded.

max

public BigInteger max(BigInteger val)

Parameters

val

The number to be compared.

Returns

The BigInteger that represents the greater of this number and the given value.

Description

This method returns the greater of this BigInteger and the given BigInteger.

min

public BigInteger min(BigInteger val)

Parameters

val

The number to be compared.

Returns

The BigInteger that represents the lesser of this number and the given value.

Description

This method returns the lesser of this BigInteger and the given BigInteger.

mod

public BigInteger mod(BigInteger m)

Parameters

m

The number to use.

Returns

A new BigInteger that contains the modulus of this number and the given number.

Throws

ArithmeticException

If m is less than or equal to zero.

Description

This method returns a new BigInteger that contains the value of this BigInteger mod m.

modInverse

 public BigInteger modInverse(BigInteger m) throws ArithmeticException 

Parameters

m

The number to use.

Returns

A new BigInteger that contains the multiplicative inverse of the modulus of this number and the given number.

Throws

ArithmeticException

If m is less than or equal to zero, or if the result cannot be calculated.

Description

This method returns a new BigInteger that contains the multiplicative inverse of the value of this BigInteger mod m.

modPow

public BigInteger modInverse(BigInteger exponent, BigInteger m)

Parameters

exponent

The exponent.

m

The number to use.

Returns

A new BigInteger that contains the modulus of this number raised to the given power and the given number.

Throws

ArithmeticException

If m is less than or equal to zero.

Description

This method returns a new BigInteger that contains the value of this BigInteger raised to the given power mod m.

multiply

public BigInteger multiply(BigInteger val)

Parameters

val

The number to be multiplied.

Returns

A new BigInteger that contains the product of this number and the given number.

Description

This method multiplies this BigInteger by the given BigInteger and returns the product as a new BigInteger.

negate

public BigInteger negate()

Returns

A new BigInteger that contains the negative of this number.

Description

This method returns a new BigInteger that is identical to this BigInteger except that its sign is reversed.

not

public BigInteger not()

Returns

A new BigInteger that contains the bitwise negation of this number.

Description

This method returns a new BigInteger that is calculated by inverting every bit of this BigInteger.

or

public BigInteger or(BigInteger val)

Parameters

val

The value to be ORed.

Returns

A new BigInteger that contains the bitwise OR of this number and the given value.

Description

This method returns the bitwise OR of this BigInteger and the given BigInteger as a new BigInteger.

pow

public BigInteger pow(int exponent) throws ArithmeticException

Parameters

exponent

The exponent.

Returns

A new BigInteger that contains the result of raising this number to the given power.

Throws

ArithmeticException

If exponent is less than zero.

Description

This method raises this BigInteger to the given power and returns the result as a new BigInteger.

remainder

 public BigInteger remainder(BigInteger val) throws ArithmeticException 

Parameters

val

The divisor.

Returns

A new BigInteger that contains the remainder that results from dividing this number by the given value.

Throws

ArithmeticException

If val is zero.

Description

This method returns the remainder that results from dividing this BigInteger by the given BigInteger as a new BigInteger.

setBit

public BigInteger setBit(int n) throws ArithmeticException

Parameters

n

The bit to set.

Returns

A new BigInteger that contains the value of this BigInteger with the given bit set.

Throws

ArithmeticException

If n is less than zero.

Description

This method returns a new BigInteger that is equal to this BigInteger, except that the given bit is set to 1.

shiftLeft

public BigInteger shiftLeft(int n)

Parameters

n

The number of bits to shift.

Returns

A new BigInteger that contains the result of shifting the bits of this number left by the given number of bits.

Description

This method returns a new BigInteger that contains the value of this BigInteger left-shifted by the given number of bits.

shiftRight

public BigInteger shiftRight(int n)

Parameters

n

The number of bits to shift.

Returns

A new BigInteger that contains the result of shifting the bits of this number right by the given number of bits with sign extension.

Description

This method returns a new BigInteger that contains the value of this BigInteger right-shifted by the given number of bits with sign extension.

signum

public int signum()

Returns

-1 is this number is negative, 0 if this number is zero, or 1 if this number is positive.

Description

This method returns a value that indicates the sign of this BigInteger.

subtract

public BigInteger subtract(BigInteger val)

Parameters

val

The number to be subtracted.

Returns

A new BigDecimal that contains the result of subtracting the given number from this number.

Description

This method subtracts the given BigInteger from this BigInteger and returns the result as a new BigInteger.

testBit

public boolean testBit(int n) throws ArithmeticException

Parameters

n

The bit to test.

Returns

true if the specified bit is 1; false if the specified bit is 0.

Throws

ArithmeticException

If n is less than zero.

Description

This method returns true if the specified bit in this BigInteger is 1. Otherwise the method returns false.

toByteArray

public byte[] toByteArray()

Returns

An array of bytes that represents this object.

Description

This method returns an array of bytes that contains the two's complement representation of this BigInteger. The most significant byte is in the first position (val[0]) of the array. The array can be used with the BigInteger(byte[]) constructor to reconstruct the number.

toString

public String toString()

Returns

A string representation of this object in decimal form.

Overrides

Object.toString()

Description

This method returns a string representation of this BigInteger in decimal form. A minus sign represents the sign if necessary. The mapping from digits to characters is provided by the Character.forDigit() method.

public String toString(int radix)

Parameters

radix

The radix to use.

Returns

A string representation of this object in the given radix.

Overrides

Object.toString()

Description

This method returns a string representation of this BigInteger for the given radix. A minus sign is used to represent the sign if necessary. The mapping from digits to characters is provided by the Character.forDigit() method.

xor

public BigInteger xor(BigInteger val)

Parameters

val

The value to be XORed.

Returns

A new BigInteger that contains the bitwise XOR of this number and the given value.

Description

This method returns the bitwise XOR of this BigInteger and the given BigInteger as a new BigInteger.

Inherited Methods

Method

Inherited From

Method

Inherited From

byteValue()

Number

clone()

Object

getClass()

Object

finalize()

Object

notify()

Object

notifyAll()

Object

shortValue()

Number

wait()

Object

wait(long)

Object

wait(long, int)

Object

See Also

ArithmeticException, BigDecimal, Character, Double, Float, IllegalArgumentException, Integer, Long, Number, NumberFormatException


Previous Home Next
BigDecimal Book Index BindException

Java in a Nutshell Java Language Reference Java AWT Java Fundamental Classes Exploring Java