Spec-Zone .ru
спецификации, руководства, описания, API
|
public class BigInteger extends Number implements Comparable<BigInteger>
Семантика арифметических операций точно подражает таковым из целочисленных арифметических операторов Java, как определено в Спецификации языка Java. Например, подразделение нулем бросает ArithmeticException
, и подразделение отрицания положительные урожаи отрицание (или нуль) остаток. Все детали в Спецификации относительно переполнения игнорируются, поскольку BigIntegers делаются как большие по мере необходимости, чтобы разместить результаты работы.
Семантика операций сдвига расширяет таковые из операторов сдвига Java, чтобы учесть отрицательные расстояния сдвига. Сдвиг вправо с отрицательным расстоянием сдвига приводит к сдвигу влево, и наоборот. Оператор сдвига вправо без знака (>>>
) опускается, поскольку эта работа имеет небольшой смысл в комбинации с "бесконечной абстракцией" размера слова, обеспеченной этим классом.
Семантика поразрядных логических операций точно подражает таковым из поразрядных целочисленных операторов Java. Бинарные операторы (and
, or
, xor
) неявно выполните расширение знака на короче этих двух операндов до выполнения работы.
Операции сравнения выполняют сравнения целого числа со знаком, аналогичные выполняемым реляционным Java и операторы равенства.
Операции арифметики в остаточных классах обеспечиваются, чтобы вычислить остатки, выполнить возведение в степень, и вычислить мультипликативные инверсии. Эти методы всегда возвращают неотрицательный результат, между 0
и (modulus - 1)
, включительно.
Битовые операции работают на единственном бите two's-дополнительного представления их операнда. В случае необходимости операнд является знаком - расширялся так, чтобы это содержало определяемый бит. Ни одна из одно-разрядных операций не может произвести BigInteger с различным знаком от BigInteger, управляемого на, поскольку они влияют на только единственный бит, и "бесконечная абстракция" размера слова, обеспеченная этим классом, гарантирует, что есть бесконечно много "виртуальных знаковых битов", предшествующих каждому BigInteger.
Ради краткости и ясности, псевдокод используется всюду по описаниям методов BigInteger. Выражение псевдокода (i + j)
сокращение для "BigInteger, значение которого является значением BigInteger i
плюс тот из BigInteger j
." Выражение псевдокода (i == j)
сокращение для"true
если и только если BigInteger i
представляет то же самое значение как BigInteger j
." Другие выражения псевдокода интерпретируются так же.
Все методы и конструкторы в этом броске класса NullPointerException
когда передано нулевая ссылка на объект для любого входного параметра.
BigDecimal
, Сериализированная ФормаМодификатор и Тип | Поле и Описание |
---|---|
static BigInteger |
ОДИН
BigInteger постоянный.
|
static BigInteger |
ДЕСЯТЬ
BigInteger постоянные десять.
|
static BigInteger |
НУЛЬ
BigInteger постоянный нуль.
|
Конструктор и Описание |
---|
BigInteger(byte[] val)
Преобразовывает байтовый массив, содержащий two's-дополнительное двоичное представление BigInteger в BigInteger.
|
BigInteger(int signum, byte[] magnitude)
Преобразовывает представление величины знака BigInteger в BigInteger.
|
BigInteger(int bitLength, int certainty, Random rnd)
Создает в произвольном порядке сгенерированный положительный BigInteger, который является, вероятно, главным с указанным bitLength.
|
BigInteger(int numBits, Random rnd)
Создает в произвольном порядке сгенерированный BigInteger, однородно распределенный по диапазону 0 к (2
numBits - 1), включительно. |
BigInteger(String val)
Преобразовывает десятичное Строковое представление BigInteger в BigInteger.
|
BigInteger(String val, int radix)
Преобразовывает Строковое представление BigInteger в указанном основании в BigInteger.
|
Модификатор и Тип | Метод и Описание |
---|---|
BigInteger |
abs()
Возвращает BigInteger, значение которого является абсолютным значением этого BigInteger.
|
BigInteger |
add(BigInteger val)
Возвращает BigInteger, значение которого
(this + val) . |
BigInteger |
and(BigInteger val)
Возвращает BigInteger, значение которого
(this & val) . |
BigInteger |
andNot(BigInteger val)
Возвращает BigInteger, значение которого
(this & ~val) . |
int |
bitCount()
Возвращает число битов в дополнительном представлении two этого BigInteger, которые отличаются от его знакового бита.
|
int |
bitLength()
Возвращает число битов в минимальном two's-дополнительном представлении этого BigInteger, исключая знаковый бит.
|
BigInteger |
clearBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с определяемым очищенным битом.
|
int |
compareTo(BigInteger val)
Сравнивает этот BigInteger с указанным BigInteger.
|
BigInteger |
divide(BigInteger val)
Возвращает BigInteger, значение которого
(this / val) . |
BigInteger[] |
divideAndRemainder(BigInteger val)
Возвращает массив двух BigIntegers, содержащих
(this / val) сопровождаемый (this % val) . |
double |
doubleValue()
Преобразовывает этот BigInteger в a
double . |
boolean |
equals(Object x)
Сравнивает этот BigInteger с указанным Объектом для равенства.
|
BigInteger |
flipBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с определяемым зеркально отраженным битом.
|
float |
floatValue()
Преобразовывает этот BigInteger в a
float . |
BigInteger |
gcd(BigInteger val)
Возвращает BigInteger, значение которого является наибольшим общим делителем
abs(this) и abs(val) . |
int |
getLowestSetBit()
Возвращает индекс самого правого одного бита (самого низкоуровневого) в этом BigInteger (число нулевых битов направо от самого правого одного бита).
|
int |
hashCode()
Возвращает хэш-код для этого BigInteger.
|
int |
intValue()
Преобразовывает этот BigInteger в
int . |
boolean |
isProbablePrime(int certainty)
Возвраты
true если этот BigInteger является, вероятно, главным, false если это - определенно составной объект. |
long |
longValue()
Преобразовывает этот BigInteger в a
long . |
BigInteger |
max(BigInteger val)
Возвращает максимум этого BigInteger и
val . |
BigInteger |
min(BigInteger val)
Возвращает минимум этого BigInteger и
val . |
BigInteger |
mod(BigInteger m)
Возвращает BigInteger, значение которого
(this mod m ). |
BigInteger |
modInverse(BigInteger m)
Возвращает BigInteger, значение которого
(this -1 mod m) . |
BigInteger |
modPow(BigInteger exponent, BigInteger m)
Возвращает BigInteger, значением которого является (thisexponent mod m).
|
BigInteger |
multiply(BigInteger val)
Возвращает BigInteger, значение которого
(this * val) . |
BigInteger |
negate()
Возвращает BigInteger, значение которого
(-this) . |
BigInteger |
nextProbablePrime()
Возвращает первое целое число, больше чем это
BigInteger это является, вероятно, главным. |
BigInteger |
not()
Возвращает BigInteger, значение которого
(~this) . |
BigInteger |
or(BigInteger val)
Возвращает BigInteger, значение которого
(this | val) . |
BigInteger |
pow(int exponent)
Возвращает BigInteger, значением которого является (thisexponent).
|
static BigInteger |
probablePrime(int bitLength, Random rnd)
Возвращает положительный BigInteger, который является, вероятно, главным с указанным bitLength.
|
BigInteger |
remainder(BigInteger val)
Возвращает BigInteger, значение которого
(this % val) . |
BigInteger |
setBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с определяемым набором битов.
|
BigInteger |
shiftLeft(int n)
Возвращает BigInteger, значение которого
(this << n) . |
BigInteger |
shiftRight(int n)
Возвращает BigInteger, значение которого
(this >> n) . |
int |
signum()
Возвращает сигнум-функцию этого BigInteger.
|
BigInteger |
subtract(BigInteger val)
Возвращает BigInteger, значение которого
(this - val) . |
boolean |
testBit(int n)
Возвраты
true если и только если определяемый бит устанавливается. |
byte[] |
toByteArray()
Возвращает байтовый массив, содержащий two's-дополнительное представление этого BigInteger.
|
Строка |
toString()
Возвращает десятичное Строковое представление этого BigInteger.
|
Строка |
toString(int radix)
Возвращает Строковое представление этого BigInteger в данном основании.
|
static BigInteger |
valueOf(long val)
Возвращает BigInteger, значение которого равно тому из указанных
long . |
BigInteger |
xor(BigInteger val)
Возвращает BigInteger, значение которого
(this ^ val) . |
byteValue, shortValue
public static final BigInteger ZERO
public static final BigInteger ONE
public static final BigInteger TEN
public BigInteger(byte[] val)
val
- two's-дополнительное двоичное представление с обратным порядком байтов BigInteger.NumberFormatException
- val
нулевые байты долго.public BigInteger(int signum, byte[] magnitude)
signum
- знак числа (-1 для отрицательного, 0 для нуля, 1 для положительного).magnitude
- двоичное представление с обратным порядком байтов величины числа.NumberFormatException
- signum
не одно из трех юридических значений (-1, 0, и 1), или signum
0 и magnitude
содержит один или более ненулевых байтов.public BigInteger(String val, int radix)
Character.digit
. Строка, возможно, не содержит посторонних символов (пробел, например).val
- Строковое представление BigInteger.radix
- основание, которое будет использоваться в интерпретации val
.NumberFormatException
- val
не допустимое представление BigInteger в указанном основании, или radix
вне диапазона от Character.MIN_RADIX
к Character.MAX_RADIX
, включительно.Character.digit(char, int)
public BigInteger(String val)
Character.digit
. Строка, возможно, не содержит посторонних символов (пробел, например).val
- десятичное Строковое представление BigInteger.NumberFormatException
- val
не допустимое представление BigInteger.Character.digit(char, int)
public BigInteger(int numBits, Random rnd)
numBits
- 1), включительно. Однородность распределения предполагает, что в справедливом источнике случайных битов обеспечивают rnd
. Отметьте, что этот конструктор всегда создает неотрицательный BigInteger.numBits
- максимум bitLength нового BigInteger.rnd
- источник случайности, которая будет использоваться в вычислениях нового BigInteger.IllegalArgumentException
- numBits
отрицательно.bitLength()
public BigInteger(int bitLength, int certainty, Random rnd)
Рекомендуется что probablePrime
метод использоваться в предпочтении к этому конструктору, если нет неотразимая потребность определить уверенность.
bitLength
- bitLength возвращенного BigInteger.certainty
- мера неопределенности, которую вызывающая сторона готова терпеть. Вероятность, что новый BigInteger представляет простое число, превысит (1 - 1/2certainty
). Время выполнения этого конструктора пропорционально значению этого параметра.rnd
- источник случайных битов, используемых, чтобы выбрать кандидатов, которые будут протестированы на простоту чисел.ArithmeticException
- bitLength < 2
.bitLength()
public static BigInteger probablePrime(int bitLength, Random rnd)
bitLength
- bitLength возвращенного BigInteger.rnd
- источник случайных битов, используемых, чтобы выбрать кандидатов, которые будут протестированы на простоту чисел.bitLength
биты, который является, вероятно, главнымArithmeticException
- bitLength < 2
.bitLength()
public BigInteger nextProbablePrime()
BigInteger
это является, вероятно, главным. Вероятность, что число, возвращенное этим методом, является составным объектом, не превышает 2-100. Этот метод никогда не будет перескакивать через начало, ища: если это возвращается p
, нет никакого начала q
так, что this < q < p
.BigInteger
это является, вероятно, главным.ArithmeticException
- this < 0
.public static BigInteger valueOf(long val)
long
. Этот "статический метод фабрики" обеспечивается в предпочтении к (long
) конструктор, потому что это учитывает повторное использование часто используемого BigIntegers.val
- значение BigInteger, чтобы возвратиться.public BigInteger add(BigInteger val)
(this + val)
.val
- значение, которое будет добавлено к этому BigInteger.this + val
public BigInteger subtract(BigInteger val)
(this - val)
.val
- значение, которое будет вычтено из этого BigInteger.this - val
public BigInteger multiply(BigInteger val)
(this * val)
.val
- значение, которое будет умножено на этот BigInteger.this * val
public BigInteger divide(BigInteger val)
(this / val)
.val
- значение, на которое должен быть разделен этот BigInteger.this / val
ArithmeticException
- если val
нуль.public BigInteger[] divideAndRemainder(BigInteger val)
(this / val)
сопровождаемый (this % val)
.val
- значение, на которое этот BigInteger должен быть разделен, и вычисленный остаток.(this / val)
начальный элемент, и остаток (this % val)
заключительный элемент.ArithmeticException
- если val
нуль.public BigInteger remainder(BigInteger val)
(this % val)
.val
- значение, на которое этот BigInteger должен быть разделен, и вычисленный остаток.this % val
ArithmeticException
- если val
нуль.public BigInteger pow(int exponent)
exponent
целое число, а не BigInteger.exponent
- экспонента, до которой должен быть повышен этот BigInteger.ArithmeticException
- exponent
отрицательно. (Это заставило бы работу приводить к значению нецелого числа.)public BigInteger gcd(BigInteger val)
abs(this)
и abs(val)
. Возвраты 0, если this==0 && val==0
.val
- значение, с которым должен быть вычислен GCD.GCD(abs(this), abs(val))
public BigInteger abs()
abs(this)
public BigInteger negate()
(-this)
.-this
public int signum()
public BigInteger mod(BigInteger m)
(this mod m
). Этот метод отличается от remainder
в этом это всегда возвращает неотрицательный BigInteger.m
- модуль.this mod m
ArithmeticException
- m
≤ 0remainder(java.math.BigInteger)
public BigInteger modPow(BigInteger exponent, BigInteger m)
pow
, этот метод разрешает отрицательные экспоненты.)exponent
- экспонента.m
- модуль.ArithmeticException
- m
≤ 0 или экспонента отрицательно, и этот BigInteger не является относительно главным к m
.modInverse(java.math.BigInteger)
public BigInteger modInverse(BigInteger m)
(this
-1 mod m)
.m
- модуль.this
-1 mod m
.ArithmeticException
- m
≤ 0, или этот BigInteger не имеет никакого модника мультипликативной инверсии м. (то есть, этот BigInteger не является относительно главным к m).public BigInteger shiftLeft(int n)
(this << n)
. Расстояние сдвига, n
, может быть отрицательным, когда этот метод выполняет сдвиг вправо. (Вычисляет floor(this * 2n).)n
- расстояние сдвига, в битах.this << n
ArithmeticException
- если расстояние сдвига Integer.MIN_VALUE
.shiftRight(int)
public BigInteger shiftRight(int n)
(this >> n)
. Расширение знака выполняется. Расстояние сдвига, n
, может быть отрицательным, когда этот метод выполняет сдвиг влево. (Вычисляет floor(this / 2n).)n
- расстояние сдвига, в битах.this >> n
ArithmeticException
- если расстояние сдвига Integer.MIN_VALUE
.shiftLeft(int)
public BigInteger and(BigInteger val)
(this & val)
. (Этот метод возвращает отрицательный BigInteger, если и только если это и val оба отрицательны.)val
- значение, чтобы быть AND'ed с этим BigInteger.this & val
public BigInteger or(BigInteger val)
(this | val)
. (Этот метод возвращает отрицательный BigInteger, если и только если или это или val отрицательны.)val
- значение, чтобы быть OR'ed с этим BigInteger.this | val
public BigInteger xor(BigInteger val)
(this ^ val)
. (Этот метод возвращает отрицательный BigInteger, если и только если точно одно из этого и val отрицательно.)val
- значение, чтобы быть XOR'ed с этим BigInteger.this ^ val
public BigInteger not()
(~this)
. (Этот метод возвращает отрицательную величину, если и только если этот BigInteger является неотрицательным.)~this
public BigInteger andNot(BigInteger val)
(this & ~val)
. Этот метод, который эквивалентен and(val.not())
, обеспечивается как удобство для того, чтобы замаскировал операции. (Этот метод возвращает отрицательный BigInteger если и только если this
отрицательно и val
положительно.)val
- значение, которое будет дополнено и AND'ed этим BigInteger.this & ~val
public boolean testBit(int n)
true
если и только если определяемый бит устанавливается. (Вычисляет ((this & (1<<n)) != 0)
.)n
- индекс бита, чтобы протестировать.true
если и только если определяемый бит устанавливается.ArithmeticException
- n
отрицательно.public BigInteger setBit(int n)
(this | (1<<n))
.)n
- индекс бита, чтобы установить.this | (1<<n)
ArithmeticException
- n
отрицательно.public BigInteger clearBit(int n)
(this & ~(1<<n))
.)n
- индекс бита, чтобы очистить.this & ~(1<<n)
ArithmeticException
- n
отрицательно.public BigInteger flipBit(int n)
(this ^ (1<<n))
.)n
- индекс бита, чтобы зеркально отразить.this ^ (1<<n)
ArithmeticException
- n
отрицательно.public int getLowestSetBit()
(this==0? -1 : log2(this & -this))
.)public int bitLength()
(ceil(log2(this < 0 ? -this : this+1)))
.)public int bitCount()
public boolean isProbablePrime(int certainty)
true
если этот BigInteger является, вероятно, главным, false
если это - определенно составной объект. Если certainty
≤ 0, true
возвращается.certainty
- мера неопределенности, которую вызывающая сторона готова терпеть: если вызов возвращается true
вероятность, что этот BigInteger является главным, превышает (1 - 1/2certainty
). Время выполнения этого метода пропорционально значению этого параметра.true
если этот BigInteger является, вероятно, главным, false
если это - определенно составной объект.public int compareTo(BigInteger val)
(x.compareTo(y)
<op> 0)
, где <op> является одним из этих шести операторов сравнения.compareTo
в интерфейсе Comparable<BigInteger>
val
- BigInteger, с которым должен быть сравнен этот BigInteger.val
.public boolean equals(Object x)
equals
в классе Object
x
- Объект, с которым должен быть сравнен этот BigInteger.true
если и только если указанным Объектом является BigInteger, значение которого в цифровой форме равно этому BigInteger.Object.hashCode()
, HashMap
public BigInteger min(BigInteger val)
val
.val
- значение, с которым должен быть вычислен минимум.val
. Если они равны, любой может быть возвращен.public BigInteger max(BigInteger val)
val
.val
- значение, с которым должен быть вычислен максимум.val
. Если они равны, любой может быть возвращен.public int hashCode()
hashCode
в классе Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public String toString(int radix)
Character.MIN_RADIX
к Character.MAX_RADIX
включительно, это примет значение по умолчанию к 10 (как имеет место для Integer.toString
). Отображение цифры-к-символьному, обеспеченное Character.forDigit
используется, и знак "минус" предварительно ожидается если приспособлено. (Это представление является совместимым с (String, int)
конструктор.)radix
- основание Строкового представления.Integer.toString(int, int)
, Character.forDigit(int, int)
, BigInteger(java.lang.String, int)
public String toString()
Character.forDigit
используется, и знак "минус" предварительно ожидается если приспособлено. (Это представление является совместимым с (String)
конструктор, и учитывает Конкатенацию строк с Java + оператор.)toString
в классе Object
Character.forDigit(int, int)
, BigInteger(java.lang.String)
public byte[] toByteArray()
(ceil((this.bitLength() + 1)/8))
. (Это представление является совместимым с (byte[])
конструктор.)BigInteger(byte[])
public int intValue()
int
. Это преобразование походит на сужающееся примитивное преобразование из long
к int
как определено в разделе 5.1.3 из Спецификации языка Java™: если этот BigInteger является слишком крупным, чтобы вписаться int
, только младший разряд 32 бита возвращается. Отметьте, что это преобразование может потерять информацию о полной величине значения BigInteger так же как возвратить результат с противоположным знаком.public long longValue()
long
. Это преобразование походит на сужающееся примитивное преобразование из long
к int
как определено в разделе 5.1.3 из Спецификации языка Java™: если этот BigInteger является слишком крупным, чтобы поместиться в a long
, только младший разряд 64 бита возвращается. Отметьте, что это преобразование может потерять информацию о полной величине значения BigInteger так же как возвратить результат с противоположным знаком.public float floatValue()
float
. Это преобразование подобно сужающемуся примитивному преобразованию из double
к float
как определено в разделе 5.1.3 из Спецификации языка Java™: если у этого BigInteger есть слишком большая величина, чтобы представить как a float
, это будет преобразовано в Float.NEGATIVE_INFINITY
или Float.POSITIVE_INFINITY
как соответствующий. Отметьте, что, даже когда возвращаемое значение конечно, это преобразование может потерять информацию о точности значения BigInteger.floatValue
в классе Number
float
.public double doubleValue()
double
. Это преобразование подобно сужающемуся примитивному преобразованию из double
к float
как определено в разделе 5.1.3 из Спецификации языка Java™: если у этого BigInteger есть слишком большая величина, чтобы представить как a double
, это будет преобразовано в Double.NEGATIVE_INFINITY
или Double.POSITIVE_INFINITY
как соответствующий. Отметьте, что, даже когда возвращаемое значение конечно, это преобразование может потерять информацию о точности значения BigInteger.doubleValue
в классе Number
double
.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.