Класс BigInteger
- Все реализованные интерфейсы:
-
Serializable,Comparable<BigInteger>
public class BigInteger extends Number implements Comparable<BigInteger>
Семантика арифметических операций точно имитирует семантику целочисленных арифметических операторов Java, как определено в Спецификации языка Java. Например, деление на ноль вызывает ArithmeticException, а деление отрицательного числа на положительное даёт отрицательный (или нулевой) остаток.
Семантика операций сдвига расширяет семантику операторов сдвига Java, чтобы позволить отрицательные величины сдвига. Сдвиг вправо с отрицательным значением сдвига приводит к сдвигу влево, и наоборот. Оператор беззнакового сдвига вправо (>>>) опущен, так как эта операция имеет смысл только для слова фиксированной длины, а не для представления, концептуально имеющего бесконечное число виртуальных знаковых битов.
Семантика побитовых логических операций точно имитирует семантику побитовых целочисленных операторов Java. Бинарные операторы (and, or, xor) неявно выполняют расширение знака для более короткого из двух операндов перед выполнением операции.
Операции сравнения выполняют сравнения целых чисел со знаком, аналогичные операторам сравнения и равенства Java.
Операции модулярной арифметики предназначены для вычисления остатков, выполнения возведения в степень и вычисления мультипликативных обратных величин. Эти методы всегда возвращают неотрицательное значение, от 0 до (modulus - 1) включительно.
Битовые операции действуют на отдельных битах двоичного представления двухдополнительного представления их операнда. Если необходимо, операнд расширяется со знаком, чтобы он содержал указанный бит. Ни одна из однобитовых операций не может произвести BigInteger с другим знаком, чем BigInteger, над которым она выполняется, так как они воздействуют только на один бит, а произвольно большая абстракция, обеспечиваемая этим классом, гарантирует, что концептуально перед каждым BigInteger есть бесконечное множество «виртуальных знаковых битов».
Для краткости и ясности в описаниях методов BigInteger используется псевдокод. Выражение (i + j) — это сокращение для "BigInteger, значение которого равно значению BigInteger i плюс значение BigInteger j". Выражение (i == j) — это сокращение для "true тогда и только тогда, когда BigInteger i представляет то же значение, что и BigInteger j". Другие выражения псевдокода интерпретируются аналогично.
Все методы и конструкторы этого класса выбрасывают NullPointerException при передаче null в качестве ссылки на объект для любого входного параметра. BigInteger должен поддерживать значения в диапазоне от -2Integer.MAX_VALUE (исключая) до +2Integer.MAX_VALUE (исключая), и может поддерживать значения за пределами этого диапазона. При создании объекта BigInteger или выполнении метода, который приводит к значению за пределами поддерживаемого диапазона, выбрасывается ArithmeticException. Диапазон вероятных простых значений ограничен и может быть меньше полного поддерживаемого положительного диапазона BigInteger. Диапазон должен быть не менее 1 до 2500000000.
- Примечание по реализации:
- В эталонной реализации конструкторы и операции BigInteger выбрасывают
ArithmeticExceptionпри получении результата за пределами поддерживаемого диапазона от -2Integer.MAX_VALUE(исключая) до +2Integer.MAX_VALUE(исключая). - См. Спецификацию языка Java:
- 4.2.2 Целочисленные операции
- С:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final BigInteger |
ONE |
Константа BigInteger, равная единице. |
static final BigInteger |
TEN |
Константа BigInteger, равная десяти. |
static final BigInteger |
TWO |
Константа BigInteger, равная двум. |
static final BigInteger |
ZERO |
Константа BigInteger, равная нулю. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
BigInteger |
Преобразует массив байтов, содержащий двоичное представление числа BigInteger в дополнительном коде, в число BigInteger. |
BigInteger |
Преобразует подмассив байтов, содержащий двоичное представление числа BigInteger в дополнительном коде, в число BigInteger. |
BigInteger |
Преобразует представление числа BigInteger в форме знак-разряд в число BigInteger. |
BigInteger |
Преобразует представление числа BigInteger в форме знак-разряд в число BigInteger. |
BigInteger |
Создаёт случайное положительное число BigInteger, которое, вероятно, является простым, с указанной длиной в битах. |
BigInteger |
Создаёт случайное число BigInteger, равномерно распределённое в диапазоне от 0 до (2 numBits - 1), включительно. |
BigInteger |
Преобразует десятичное строковое представление числа BigInteger в число BigInteger. |
BigInteger |
Преобразует строковое представление числа BigInteger в указанной системе счисления в число BigInteger. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
BigInteger |
abs() |
Возвращает BigInteger, значение которого равно абсолютному значению этого BigInteger. |
BigInteger |
add |
Возвращает BigInteger, значение которого равно (this + val). |
BigInteger |
and |
Возвращает BigInteger, значение которого равно (this & val). |
BigInteger |
andNot |
Возвращает BigInteger, значение которого равно (this & ~val). |
int |
bitCount() |
Возвращает количество бит в представлении этого BigInteger в дополнительном коде, которые отличаются от его знака. |
int |
bitLength() |
Возвращает количество бит в минимальном представлении этого BigInteger в дополнительном коде, исключая бит знака. |
byte |
byteValueExact() |
Преобразует этот BigInteger в byte, проверяя потерю информации. |
BigInteger |
clearBit |
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с очищенным указанным битом. |
int |
compareTo |
Сравнивает этот BigInteger со значением указанного BigInteger. |
BigInteger |
divide |
Возвращает BigInteger, значение которого равно (this / val). |
BigInteger[] |
divideAndRemainder |
Возвращает массив из двух BigInteger, содержащий (this / val) и (this % val). |
double |
doubleValue() |
Преобразует этот BigInteger в double. |
boolean |
equals |
Сравнивает этот BigInteger с указанным объектом на равенство. |
BigInteger |
flipBit |
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с переключённым указанным битом. |
float |
floatValue() |
Преобразует этот BigInteger в float. |
BigInteger |
gcd |
Возвращает BigInteger, значение которого является наибольшим общим делителем abs(this) и abs(val). |
int |
getLowestSetBit() |
Возвращает индекс самого правого (самого младшего) бита 1 в этом BigInteger (число нулевых битов справа от самого правого бита 1). |
int |
hashCode() |
Возвращает хэш-код для этого BigInteger. |
int |
intValue() |
Преобразует этот BigInteger в int. |
int |
intValueExact() |
Преобразует этот BigInteger в int, проверяя потерю информации. |
boolean |
isProbablePrime |
Возвращает true, если этот BigInteger, вероятно, является простым, и false, если он определённо составной. |
long |
longValue() |
Преобразует этот BigInteger в long. |
long |
longValueExact() |
Преобразует этот BigInteger в long, проверяя потерю информации. |
BigInteger |
max |
Возвращает максимальное значение между этим BigInteger и val. |
BigInteger |
min |
Возвращает минимальное значение между этим BigInteger и val. |
BigInteger |
mod |
Возвращает BigInteger со значением (this mod m). |
BigInteger |
modInverse |
Возвращает BigInteger, значение которого равно (this-1 mod m). |
BigInteger |
modPow |
Возвращает BigInteger, значение которого равно (thisexponent mod m). |
BigInteger |
multiply |
Возвращает BigInteger, значение которого равно (this * val). |
BigInteger |
negate() |
Возвращает BigInteger, значение которого равно (-this). |
BigInteger |
nextProbablePrime() |
Возвращает первое целое число, большее этого BigInteger, которое, вероятно, является простым. |
BigInteger |
not() |
Возвращает BigInteger, значение которого равно (~this). |
BigInteger |
or |
Возвращает BigInteger, значение которого равно (this | val). |
BigInteger |
parallelMultiply |
Возвращает BigInteger, значение которого равно (this * val). |
BigInteger |
pow |
Возвращает BigInteger, значение которого равно (thisexponent). |
static BigInteger |
probablePrime |
Возвращает положительный BigInteger, который, вероятно, является простым, с заданной длиной в битах. |
BigInteger |
remainder |
Возвращает BigInteger, значение которого равно (this % val). |
BigInteger |
setBit |
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с установленным указанным битом. |
BigInteger |
shiftLeft |
Возвращает BigInteger, значение которого равно (this << n). |
BigInteger |
shiftRight |
Возвращает BigInteger, значение которого равно (this >> n). |
short |
shortValueExact() |
Преобразует этот BigInteger в short, проверяя наличие потерянной информации. |
int |
signum() |
Возвращает функцию знака этого BigInteger. |
BigInteger |
sqrt() |
Возвращает целую квадратную корень этого BigInteger. |
BigInteger[] |
sqrtAndRemainder() |
Возвращает массив из двух BigInteger, содержащих целую квадратную корень s от this и его остаток this - s*s, соответственно. |
BigInteger |
subtract |
Возвращает BigInteger, значение которого равно (this - val). |
boolean |
testBit |
Возвращает значение true, если указанный бит установлен. |
byte[] |
toByteArray() |
Возвращает массив байтов, содержащий представление этого BigInteger в дополнении до двух. |
String |
toString() |
Возвращает строковое представление этого BigInteger в десятичной системе. |
String |
toString |
Возвращает строковое представление этого BigInteger в заданной системе счисления. |
static BigInteger |
valueOf |
Возвращает BigInteger, значение которого равно значению указанного long. |
BigInteger |
xor |
Возвращает BigInteger, значение которого равно (this ^ val). |
Методы, объявленные в классе java.lang.Number
byteValue, shortValue
Подробное описание полей
ZERO
public static final BigInteger ZERO
- С момента:
- 1.2
ONE
public static final BigInteger ONE
- С момента:
- 1.2
TWO
public static final BigInteger TWO
- С момента:
- 9
TEN
public static final BigInteger TEN
- С момента:
- 1.5
Подробное описание конструкторов
BigInteger
public BigInteger(byte[] val, int off, int len)
off. Предполагается, что массив val не изменяется в течение вызова конструктора. Бросается исключение IndexOutOfBoundsException, если длина массива val равна нулю, либо off отрицательно, len отрицательно, или off+len больше длины val.- Параметры:
-
val- массив байтов, содержащий подмассив, представляющий собой двоичное представление BigInteger в дополнении до двух в big-endian порядке. -
off- начальное смещение бинарного представления. -
len- количество байтов для использования. - Исключения:
-
NumberFormatException-valимеет длину ноль байтов. -
IndexOutOfBoundsException- если предоставленное смещение и длина массива вызывают индекс в массиве байтов, который отрицательный или больше или равен длине массива. - С момента:
- 9
BigInteger
public BigInteger(byte[] val)
val предполагается неизменным в течение вызова конструктора.- Параметры:
-
val- представление BigInteger в двоичном формате дополнения до двух с порядком байтов big-endian. - Исключения:
-
NumberFormatException-valимеет нулевую длину.
BigInteger
public BigInteger(int signum, byte[] magnitude, int off, int len)
off. Допустимо значение длины len равное нулю, что приведёт к значению BigInteger равным 0, независимо от значения signum ( -1, 0 или 1). Массив magnitude предполагается неизменным в течение вызова конструктора. Бросается исключение IndexOutOfBoundsException, если длина массива magnitude не равна нулю, и либо off отрицательное, либо len отрицательное, либо off+len больше длины массива magnitude. - Параметры:
-
signum- знак числа (-1 для отрицательного, 0 для нуля, 1 для положительного). -
magnitude- представление величины числа в двоичном формате big-endian. -
off- начальный смещение в двоичном представлении. -
len- количество байтов для использования. - Исключения:
-
NumberFormatException-signumне имеет одного из трёх допустимых значений (-1, 0 и 1) илиsignumравно 0 иmagnitudeсодержит один или более ненулевых байтов. -
IndexOutOfBoundsException- если предоставленные смещение и длина массива приведут к индексу в массиве байтов, который будет отрицательным или больше или равен длине массива. - С момента:
- 9
BigInteger
public BigInteger(int signum, byte[] magnitude)
magnitude не изменится в течение вызова конструктора.- Параметры:
-
signum- знак числа (-1 для отрицательного, 0 для нулевого, 1 для положительного). -
magnitude- big-endian двоичное представление модуля числа. - Исключения:
-
NumberFormatException-signumне равно одному из трех допустимых значений (-1, 0 и 1), илиsignumравно 0, иmagnitudeсодержит один или несколько ненулевых байтов.
BigInteger
public BigInteger(String val, int radix)
Character.digit. Строка не должна содержать никаких лишних символов (например, пробелов).- Параметры:
-
val- строковое представление BigInteger. -
radix- система счисления, используемая для интерпретацииval. - Исключения:
-
NumberFormatException-valне является допустимым представлением BigInteger в указанной системе счисления, илиradixнаходится вне диапазона отCharacter.MIN_RADIXдоCharacter.MAX_RADIXвключительно.
BigInteger
public BigInteger(String val)
Character.digit. Строка не должна содержать лишних символов (например, пробелов).- Параметры:
-
val- строковое десятичное представление BigInteger. - Исключения:
-
NumberFormatException-valне является допустимым представлением BigInteger.
BigInteger
public BigInteger(int numBits, Random rnd)
numBits - 1), включительно. Равномерность распределения предполагает, что в rnd используется честный источник случайных битов. Обратите внимание, что этот конструктор всегда создаёт неотрицательный BigInteger.- Параметры:
-
numBits- максимальная длина в битах нового BigInteger. -
rnd- источник случайности, используемый для вычисления нового BigInteger. - Исключения:
-
IllegalArgumentException-numBitsотрицателен. - См. также:
BigInteger
public BigInteger(int bitLength, int certainty, Random rnd)
- Примечание API:
- Рекомендуется использовать метод
probablePrimeвместо этого конструктора, если нет веских причин указывать определённую надёжность. - Параметры:
-
bitLength- длина в битах возвращаемого числа BigInteger. -
certainty- мера неопределённости, которую вызывающий код готов принять. Вероятность того, что новое число BigInteger представляет собой простое число, будет превышать (1 - 1/2certainty). Время выполнения этого конструктора пропорционально значению этого параметра. -
rnd- источник случайных битов, используемых для выбора кандидатов, которые будут проверены на простоту. - Исключения:
-
ArithmeticException-bitLength < 2илиbitLengthслишком велики. - См. также:
Подробное описание методов
probablePrime
public static BigInteger probablePrime(int bitLength, Random rnd)
- Параметры:
-
bitLength- длина в битах возвращаемого числа BigInteger. -
rnd- источник случайных битов, используемых для выбора кандидатов, которые будут проверены на простоту. - Возвращаемое значение:
- число BigInteger с
bitLengthбитами, которое, вероятно, является простым - Исключения:
-
ArithmeticException-bitLength < 2илиbitLengthслишком велики. - См. также:
nextProbablePrime
public BigInteger nextProbablePrime()
BigInteger, которое, вероятно, является простым. Вероятность того, что возвращаемое этим методом число составное, не превышает 2-100. Это метод никогда не пропустит простое число при поиске: если он возвращает p, значит нет простого q такого, что this < q < p. - Примечание по реализации:
- Из-за особенностей алгоритма, и в зависимости от размера
this, этот метод может потреблять большое количество памяти, вплоть до исчерпания доступного пространства кучи, или может выполняться длительное время. - Возвращает:
- первое целое число, большее этого
BigInteger, которое, вероятно, является простым. - Исключения:
-
ArithmeticException-this < 0илиthisслишком велики. - С:
- 1.5
valueOf
public static BigInteger valueOf(long val)
long. - Примечание API:
- Этот статический фабричный метод предоставляется вместо (
long) конструктора, потому что он позволяет повторно использовать часто используемые BigInteger. - Параметры:
-
val- значение возвращаемого BigInteger. - Возвращает:
- BigInteger со значением указанного значения.
add
public BigInteger add(BigInteger val)
(this + val).- Параметры:
-
val- значение, которое нужно добавить к этому BigInteger. - Возвращает:
this + val
subtract
public BigInteger subtract(BigInteger val)
(this - val).- Параметры:
-
val- значение, которое нужно вычесть из этого BigInteger. - Возвращает:
this - val
multiply
public BigInteger multiply(BigInteger val)
(this * val).- Примечание по реализации:
- Реализация может предложить лучшую алгоритмическую производительность, когда
val == this. - Параметры:
-
val- значение, на которое нужно умножить этот BigInteger. - Возвращает:
this * val
parallelMultiply
public BigInteger parallelMultiply(BigInteger val)
(this * val). Когда оба this и val велики, обычно в тысячах бит, может быть использован параллельный умножитель. Этот метод возвращает точно такое же математическое значение, как multiply(java.math.BigInteger).- Примечание реализации:
- Эта реализация может предложить лучшую алгоритмическую производительность, когда
val == this. По сравнению сmultiply(java.math.BigInteger), алгоритм параллельного умножения реализации обычно использует больше ресурсов ЦП для более быстрого вычисления результата и может делать это с небольшим увеличением потребления памяти. - Параметры:
-
val- значение, которое нужно умножить на этот BigInteger. - Возвращает:
this * val- С:
- 19
- См. также:
divide
public BigInteger divide(BigInteger val)
(this / val).- Параметры:
-
val- значение, на которое нужно разделить этот BigInteger. - Возвращает:
this / val- Исключения:
-
ArithmeticException- еслиvalравно нулю.
divideAndRemainder
public BigInteger[] divideAndRemainder(BigInteger val)
(this / val) за которым следует (this % val).- Параметры:
-
val- значение, на которое нужно разделить этот BigInteger, и вычислить остаток. - Возвращает:
- массив из двух BigInteger: частное
(this / val)является начальным элементом, а остаток(this % val)является конечным элементом. - Исключения:
-
ArithmeticException- еслиvalравно нулю.
остаток
public BigInteger remainder(BigInteger val)
(this % val).- Параметры:
-
val- значение, на которое должен быть разделен этот BigInteger, и вычисляется остаток. - Возвращает:
this % val- Исключения:
-
ArithmeticException- еслиvalравно нулю.
pow
public BigInteger pow(int exponent)
(thisexponent). Обратите внимание, что exponent является целым числом, а не BigInteger.- Параметры:
-
exponent- показатель степени, до которого должен быть возведен этот BigInteger. - Возвращает:
thisexponent- Исключения:
-
ArithmeticException-exponentотрицательный. (Это приведет к тому, что операция вернёт не целое значение.)
sqrt
public BigInteger sqrt()
n — это наибольшее математическое целое число s такое, что s*s <= n. Оно равно значению floor(sqrt(n)), где sqrt(n) обозначает действительный квадратный корень из n, рассматриваемого как действительное число. Обратите внимание, что целая часть квадратного корня будет меньше действительного квадратного корня, если последний не представим как целое значение.- Возвращает:
- целая часть квадратного корня из
this - Исключения:
-
ArithmeticException- еслиthisотрицательное. (Квадратный корень из отрицательного целого числаvalравен(i * sqrt(-val)), где i — мнимая единица и равноsqrt(-1).) - С:
- 9
sqrtAndRemainder
public BigInteger[] sqrtAndRemainder()
s из this и остаток this - s*s, соответственно.- Возвращает:
- массив из двух BigIntegers, где целая часть квадратного корня находится в элементе с индексом 0, а остаток — в элементе с индексом 1
- Исключения:
-
ArithmeticException- еслиthisотрицательно. (Квадратный корень из отрицательного целого числаvalявляется(i * sqrt(-val)), где i — мнимая единица и равноsqrt(-1).) - С момента:
- 9
- См. также:
gcd
public BigInteger gcd(BigInteger val)
abs(this) и abs(val). Возвращает 0, если this == 0 && val == 0. - Параметры:
-
val- значение, для которого вычисляется НОД. - Возвращает:
GCD(abs(this), abs(val))
abs
public BigInteger abs()
- Возвращает:
abs(this)
negate
public BigInteger negate()
(-this).- Возвращает:
-this
signum
public int signum()
- Возвращает:
- -1, 0 или 1 в зависимости от того, отрицательно, равно нулю или положительно значение этого BigInteger.
mod
public BigInteger mod(BigInteger m)
(this mod m). Этот метод отличается от remainder тем, что всегда возвращает неотрицательный BigInteger.- Параметры:
-
m- модуль. - Возвращает:
this mod m- Исключения:
-
ArithmeticException-m≤ 0 - См. также:
modPow
public BigInteger modPow(BigInteger exponent, BigInteger m)
(thisexponent mod m). (В отличие от pow, этот метод допускает отрицательные показатели степени.)- Параметры:
-
exponent- показатель степени. -
m- модуль. - Возвращает:
thisexponent mod m- Исключения:
-
ArithmeticException-m≤ 0 или показатель степени отрицательный, и этот BigInteger не является взаимно простым сm. - См. также:
modInverse
public BigInteger modInverse(BigInteger m)
(this-1 mod m).- Параметры:
-
m- модуль. - Возвращает:
-
this-1mod m. - Исключения:
-
ArithmeticException-m≤ 0 или у этого BigInteger нет мультипликативного обратного по модулю m (то есть, этот BigInteger не является взаимно простым с m).
shiftLeft
public BigInteger shiftLeft(int n)
(this << n). Расстояние сдвига, n, может быть отрицательным, в этом случае этот метод выполняет сдвиг вправо. (Вычисляет floor(this * 2n).)- Параметры:
-
n- расстояние сдвига в битах. - Возвращает:
this << n- См. также:
shiftRight
public BigInteger shiftRight(int n)
(this >> n). Выполняется расширение знака. Расстояние сдвига, n, может быть отрицательным, в этом случае этот метод выполняет сдвиг влево. (Вычисляет floor(this / 2n).)- Параметры:
-
n- расстояние сдвига в битах. - Возвращает:
this >> n- См. также:
и
public BigInteger and(BigInteger val)
(this & val). (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда этот и val оба отрицательны.)- Параметры:
-
val- значение, которое нужно AND'ить с этим BigInteger. - Возвращает:
this & val
или
public BigInteger or(BigInteger val)
(this | val). (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда этот или val отрицательны.)- Параметры:
-
val- значение, которое нужно OR'ить с этим BigInteger. - Возвращает:
this | val
исключающее ИЛИ
public BigInteger xor(BigInteger val)
(this ^ val). (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда ровно один из этого и val отрицательны.)- Параметры:
-
val- значение, которое нужно XOR'ить с этим BigInteger. - Возвращает:
this ^ val
не
public BigInteger not()
(~this). (Этот метод возвращает отрицательное значение тогда и только тогда, когда этот BigInteger неотрицателен.)- Возвращает:
~this
andNot
public BigInteger andNot(BigInteger val)
(this & ~val). Этот метод, который эквивалентен and(val.not()), предоставляется для удобства операций маскирования. (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда this отрицателен, а val положителен.)- Параметры:
-
val- значение, которое нужно инвертировать и AND'ить с этим BigInteger. - Возвращает:
this & ~val
testBit
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отрицательно.
getLowestSetBit
public int getLowestSetBit()
(this == 0? -1 : log2(this & -this)).)- Возвращает:
- индекс правого бита 1 в этом BigInteger.
разрядность
public int bitLength()
0. (Вычисляет (ceil(log2(this < 0 ? -this : this+1))).)- Возвращает:
- количество битов в минимальном представлении этого BigInteger в дополнении до двух, исключая бит знака.
bitCount
public int bitCount()
- Возвращает:
- количество битов в представлении этого BigInteger в дополнительном коде, которые отличаются от его знакового бита.
isProbablePrime
public boolean isProbablePrime(int certainty)
true если этот BigInteger, вероятно, является простым, false если он определённо составной. Если certainty ≤ 0, возвращается true. - Примечание реализации:
- Из-за характера алгоритма проверки простоты и в зависимости от размера
thisиcertainty, этот метод может потребовать большого объёма памяти, до исчерпания доступного пространства кучи, или может выполняться долго. - Параметры:
-
certainty- мера неопределённости, которую вызывающий код готов допустить: если вызов возвращаетtrue, вероятность того, что этот BigInteger является простым, превышает (1 - 1/2certainty). Время выполнения этого метода пропорционально значению этого параметра. - Возвращает:
-
trueесли этот BigInteger, вероятно, является простым,falseесли он определённо составной. - Исключения:
-
ArithmeticException-thisслишком велико.
compareTo
public int compareTo(BigInteger val)
(x.compareTo(y) <op> 0), где <op> — один из шести операторов сравнения.- Спецификация интерфейса:
-
compareToв интерфейсеComparable<BigInteger> - Параметры:
-
val- BigInteger, с которым должен быть сравнен этот BigInteger. - Возвращает:
- -1, 0 или 1, в зависимости от того, является ли этот BigInteger численно меньше, равен или больше
val.
equals
public boolean equals(Object x)
- Overrides:
-
equalsв классеObject - Параметры:
-
x- Объект, с которым должен быть сравнен этот BigInteger. - Возвращает:
-
trueтогда и только тогда, когда указанный объект является BigInteger, значение которого численно равно этому BigInteger. - См. также:
min
public BigInteger min(BigInteger val)
val. - Параметры:
-
val- значение, с которым вычисляется минимум. - Возвращает:
- BigInteger, значение которого является меньшим из этого BigInteger и
val. Если они равны, может быть возвращено любое из них.
max
public BigInteger max(BigInteger val)
val. - Параметры:
-
val- значение, с которым вычисляется максимум. - Возвращает:
- BigInteger, значение которого является большим из этого и
val. Если они равны, может быть возвращено любое из них.
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Возвращает:
- хэш-код для этого BigInteger.
- См. также:
toString
public String toString(int radix)
Character.MIN_RADIX до Character.MAX_RADIX включительно, она по умолчанию будет равна 10 (как и в случае с Integer.toString). Используется отображение цифр на символы, предоставляемое Character.forDigit, и, при необходимости, в начале добавляется знак минус. (Это представление совместимо с конструктором (String,
int).)- Parameters:
-
radix- система счисления строкового представления. - Returns:
- Строковое представление этого BigInteger в заданной системе счисления.
- See Also:
toString
public String toString()
Character.forDigit, и, при необходимости, в начале добавляется знак минус. (Это представление совместимо с конструктором (String) и позволяет выполнять конкатенацию строк с помощью оператора Java +.)- Overrides:
-
toStringв классеObject - Returns:
- Десятичное строковое представление этого BigInteger.
- See Also:
toByteArray
public byte[] toByteArray()
(ceil((this.bitLength() +
1)/8)). (Это представление совместимо со (byte[]) конструктором.)- Возвращает:
- массив байтов, содержащий представление этого BigInteger в дополнительном коде.
- См. также:
intValue
public int intValue()
int. Это преобразование аналогично сужению примитивного преобразования из long в int согласно Спецификации языка Java: если этот BigInteger слишком большой, чтобы поместиться в int, возвращаются только младшие 32 бита. Обратите внимание, что при этом преобразовании может быть потеряна информация о величине значения BigInteger, а также может быть возвращён результат с противоположным знаком.- Определено в:
-
intValueв классеNumber - Возвращает:
- этот BigInteger, преобразованный в
int. - См. Спецификацию языка Java:
- 5.1.3 Сужение примитивного преобразования
- См. также:
longValue
public long longValue()
long. Это преобразование аналогично преобразованию примитивного типа сужения от long до int, как определено в Спецификации языка Java: если этот BigInteger слишком большой, чтобы поместиться в long, возвращаются только младшие 64 бита. Обратите внимание, что при этом преобразовании может быть потеряна информация о целом порядке величины значения BigInteger, а также может быть возвращено значение с противоположным знаком.- Определено в:
-
longValueв классеNumber - Возвращает:
- этот BigInteger, преобразованный в
long. - См. Спецификацию языка Java:
- 5.1.3 Преобразование примитивного типа сужения
- См. также:
floatValue
public float floatValue()
float. Это преобразование похоже на преобразование примитивного типа сужения от double до float, как определено в Спецификации языка Java: если у этого BigInteger слишком большая величина, чтобы быть представленной как float, она будет преобразована в Float.NEGATIVE_INFINITY или Float.POSITIVE_INFINITY соответственно. Обратите внимание, что даже когда возвращаемое значение конечно, при этом преобразовании может быть потеряна информация о точности значения BigInteger.- Определено в:
-
floatValueв классеNumber - Возвращает:
- этот BigInteger, преобразованный в
float. - См. Спецификацию языка Java:
- 5.1.3 Преобразование примитивного типа сужения
doubleValue
public double doubleValue()
double. Это преобразование аналогично преобразованию примитивного типа с сужением из double в float, как определено в Спецификации языка Java: если у этого BigInteger слишком большой порядок, чтобы представить его как double, он будет преобразован в Double.NEGATIVE_INFINITY или Double.POSITIVE_INFINITY соответственно. Обратите внимание, что даже когда возвращаемое значение конечно, при этом преобразовании может быть потеряна информация о точности значения BigInteger.- Определено в:
-
doubleValueв классеNumber - Возвращает:
- этот BigInteger, преобразованный в
double. - См. Спецификацию языка Java:
- 5.1.3 Преобразование примитивного типа с сужением
longValueExact
public long longValueExact()
BigInteger в long, проверяя потерю информации. Если значение этого BigInteger выходит за пределы диапазона типа long, будет брошено исключение ArithmeticException.- Возвращает:
- этот
BigIntegerпреобразованный вlong. - Исключения:
-
ArithmeticException- если значениеthisне поместится точно вlong. - C тех пор как:
- 1.8
- См. также:
intValueExact
public int intValueExact()
BigInteger в int, проверяя потерю информации. Если значение этого BigInteger выходит за пределы диапазона типа int, будет брошено исключение ArithmeticException.- Возвращает:
- этот
BigIntegerпреобразованный вint. - Исключения:
-
ArithmeticException- если значениеthisне поместится точно вint. - C тех пор как:
- 1.8
- См. также:
shortValueExact
public short shortValueExact()
BigInteger в short, проверяя потерю информации. Если значение этого BigInteger выходит за пределы диапазона типа short, то выбрасывается ArithmeticException. - Возвращает:
- Этот
BigInteger, преобразованный вshort. - Выбрасывает:
-
ArithmeticException- если значениеthisне поместится точно вshort. - С:
- 1.8
- См. также:
byteValueExact
public byte byteValueExact()
BigInteger в byte, проверяя потерю информации. Если значение этого BigInteger выходит за пределы диапазона типа byte, то выбрасывается ArithmeticException. - Возвращает:
- Этот
BigInteger, преобразованный вbyte. - Выбрасывает:
-
ArithmeticException- если значениеthisне поместится точно вbyte. - С:
- 1.8
- См. также:
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/math/BigInteger.html