Spec-Zone.ru › OpenJDK 27

Класс BigInteger

java.lang.Object
java.lang.Number
java.math.BigInteger
Все реализуемые интерфейсы:
Serializable, Comparable<BigInteger>
public class BigInteger extends Number implements Comparable<BigInteger>
Неизменяемые целые числа произвольной точности. Все операции выполняются так, как если бы BigInteger были представлены в дополнительном коде (как примитивные целочисленные типы Java). BigInteger предоставляет аналоги всех примитивных целочисленных операторов Java и всех соответствующих методов java.lang.Math. Кроме того, BigInteger предоставляет операции для модульной арифметики, вычисления НОД, проверки простоты, генерации простых чисел, манипулирования битами и ряда других операций общего назначения.

Семантика арифметических операций в точности соответствует семантике целочисленных арифметических операторов Java, определенной в Спецификации языка Java. Например, деление на ноль вызывает ArithmeticException, а при делении отрицательного числа на положительное получается отрицательный (или нулевой) остаток.

Семантика операций сдвига расширяет семантику операторов сдвига Java, допуская отрицательные величины сдвига. Сдвиг вправо на отрицательное расстояние приводит к сдвигу влево, и наоборот. Оператор беззнакового сдвига вправо (>>>) отсутствует, поскольку эта операция имеет смысл только для слова фиксированного размера, а не для представления, концептуально имеющего бесконечное число ведущих виртуальных знаковых битов.

Семантика побитовых логических операций в точности соответствует семантике целочисленных побитовых операторов Java. Бинарные операторы (and, or, xor) неявно выполняют знаковое расширение более короткого из двух операндов перед выполнением операции.

Операции сравнения выполняют сравнение целых чисел со знаком, аналогичное сравнению, выполняемому реляционными операторами и операторами равенства Java.

Операции модульной арифметики предназначены для вычисления остатков, возведения в степень и вычисления мультипликативных обратных элементов. Эти методы всегда возвращают неотрицательный результат в диапазоне от 0 до (modulus - 1) включительно.

Побитовые операции действуют на отдельный бит представления операнда в дополнительном коде. При необходимости выполняется знаковое расширение операнда, чтобы он содержал указанный бит. Ни одна из операций над отдельным битом не может изменить знак 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 (исключительно) и может поддерживать значения за пределами этого диапазона. ArithmeticException выбрасывается, если конструктор или метод BigInteger приводит к созданию значения за пределами поддерживаемого диапазона. Диапазон возможных значений простых чисел ограничен и может быть меньше полного поддерживаемого положительного диапазона BigInteger. Диапазон должен быть не меньше чем от 1 до 2500000000.

Примечание API:
Поскольку значения BigInteger представляют собой целые числа произвольной точности, алгоритмическая сложность методов этого класса различается и может быть сверхлинейной относительно размера входных данных. Например, ожидается, что метод вроде intValue() будет выполняться за O(1), то есть за постоянное время, поскольку при текущем внутреннем представлении для преобразования в int достаточно получить доступ лишь к компоненту фиксированного размера BigInteger. В отличие от него, ожидается, что метод вроде not() будет выполняться за время O(n), где n — размер BigInteger в битах, то есть за время, пропорциональное размеру входных данных. Для умножения двух значений BigInteger размера n наивный алгоритм умножения выполнялся бы за время O(n2), а теоретические результаты показывают, что алгоритм умножения чисел с использованием этой категории представления должен выполняться как минимум за O(n log n). К распространенным алгоритмам умножения, имеющим сложность между наивным и теоретическим пределами, относятся алгоритм Карацубы (O(n1.585)) и трехсторонний алгоритм Тума — Кука (O(n1.465)).

Конкретная реализация multiply может переключаться между различными алгоритмами в зависимости от входных данных, например, чтобы ускорить фактическое вычисление произведения, используя более простые алгоритмы для небольших входных данных, даже если асимптотическая сложность простого алгоритма выше.

Операции также могут выделять память и выполнять вычисления над промежуточными результатами; такие выделения потенциально могут быть пропорциональны времени выполнения алгоритма.

Пользователи BigInteger, которым необходимо ограничить время выполнения или объем памяти операций, могут отфильтровывать значения BigInteger, превышающие выбранную величину.

Примечание по реализации:
В эталонной реализации конструкторы и операции BigInteger выбрасывают ArithmeticException, если результат выходит за пределы поддерживаемого диапазона от -2Integer.MAX_VALUE (исключительно) до +2Integer.MAX_VALUE (исключительно).
См. Спецификацию языка Java:
4.2.2 Целочисленные операции
Начиная с версии:
1.1
См. также:
  • BigDecimal
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final BigInteger ONE
Константа BigInteger, равная единице.
static final BigInteger TEN
Константа BigInteger, равная десяти.
static final BigInteger TWO
Константа BigInteger, равная двум.
static final BigInteger ZERO
Константа BigInteger, равная нулю.

Краткое описание конструкторов

Конструктор Описание
BigInteger(byte[] val)
Преобразует массив байтов, содержащий двоичное представление BigInteger в дополнительном коде, в BigInteger.
BigInteger(byte[] val, int off, int len)
Преобразует подмассив байтов, содержащий двоичное представление BigInteger в дополнительном коде, в BigInteger.
BigInteger(int signum, byte[] magnitude)
Преобразует представление BigInteger в форме «знак и модуль» в BigInteger.
BigInteger(int signum, byte[] magnitude, int off, int len)
Преобразует представление BigInteger в форме «знак и модуль» в BigInteger.
BigInteger(int bitLength, int certainty, Random rnd)
Создает случайное положительное число BigInteger, которое с высокой вероятностью является простым, с заданной длиной в битах.
BigInteger(int numBits, Random rnd)
Создает случайное число BigInteger, равномерно распределенное в диапазоне от 0 до (2numBits - 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()
Возвращает количество битов в представлении этого BigInteger в дополнительном коде, отличающихся от его знакового бита.
int bitLength()
Возвращает количество битов в минимальном представлении этого BigInteger в дополнительном коде, не включая знаковый бит.
byte byteValueExact()
Преобразует этот BigInteger в byte, проверяя потерю информации.
BigInteger clearBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с очищенным указанным битом.
int compareTo(BigInteger val)
Сравнивает этот BigInteger с указанным BigInteger.
BigInteger divide(BigInteger val)
Возвращает BigInteger, значение которого равно (this / val).
BigInteger[] divideAndRemainder(BigInteger val)
Возвращает массив из двух BigInteger, содержащий (this / val), за которым следует (this % val).
double doubleValue()
Преобразует этот BigInteger в double.
boolean equals(Object x)
Сравнивает этот BigInteger с указанным объектом на равенство.
BigInteger flipBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с инвертированным указанным битом.
float floatValue()
Преобразует этот BigInteger в float.
BigInteger gcd(BigInteger val)
Возвращает наибольший общий делитель abs(this) и abs(val).
int getLowestSetBit()
Возвращает индекс крайнего справа (младшего) единичного бита в этом BigInteger (количество нулевых битов справа от крайнего справа единичного бита).
int hashCode()
Возвращает хеш-код этого BigInteger.
int intValue()
Преобразует этот BigInteger в int.
int intValueExact()
Преобразует этот BigInteger в int, проверяя потерю информации.
boolean isProbablePrime(int certainty)
Возвращает true, если это BigInteger, вероятно, является простым числом, и false, если оно заведомо составное.
long longValue()
Преобразует этот BigInteger в long.
long longValueExact()
Преобразует этот BigInteger в 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 parallelMultiply(BigInteger val)
Возвращает BigInteger, значение которого равно (this * val).
BigInteger pow(int exponent)
Возвращает BigInteger, значение которого равно (thisexponent).
static BigInteger probablePrime(int bitLength, Random rnd)
Возвращает положительное число BigInteger, которое с высокой вероятностью является простым, с заданной длиной в битах.
BigInteger remainder(BigInteger val)
Возвращает BigInteger, значение которого равно (this % val).
BigInteger rootn(int n)
Возвращает целочисленный корень n-й степени из этого BigInteger.
BigInteger[] rootnAndRemainder(int n)
Возвращает массив из двух BigInteger, содержащий целочисленный корень n-й степени r из this и соответствующий остаток this - rn.
BigInteger setBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с установленным указанным битом.
BigInteger shiftLeft(int n)
Возвращает BigInteger, значение которого равно (this << n).
BigInteger shiftRight(int n)
Возвращает BigInteger, значение которого равно (this >> n).
short shortValueExact()
Преобразует этот BigInteger в short, проверяя потерю информации.
int signum()
Возвращает знак этого BigInteger.
BigInteger sqrt()
Возвращает целочисленный квадратный корень из этого BigInteger.
BigInteger[] sqrtAndRemainder()
Возвращает массив из двух BigInteger, содержащий целочисленный квадратный корень s из this и соответствующий остаток this - s*s.
BigInteger subtract(BigInteger val)
Возвращает BigInteger, значение которого равно (this - val).
boolean testBit(int n)
Возвращает true тогда и только тогда, когда указанный бит установлен.
byte[] toByteArray()
Возвращает массив байтов, содержащий представление этого BigInteger в дополнительном коде.
String toString()
Возвращает десятичное строковое представление этого BigInteger.
String toString(int radix)
Возвращает строковое представление этого BigInteger в заданной системе счисления.
static BigInteger valueOf(long val)
Возвращает BigInteger, значение которого равно значению указанного long.
BigInteger xor(BigInteger val)
Возвращает BigInteger, значение которого равно (this ^ val).

Методы, объявленные в классе Number

byteValue, shortValue
Модификатор и тип Метод Описание
byte byteValue()
Возвращает значение указанного числа в виде byte.
short shortValue()
Возвращает значение указанного числа в виде short.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного интервала реального времени.

Подробное описание полей

ZERO

public static final BigInteger ZERO
Константа BigInteger, равная нулю.
Начиная с:
1.2

ONE

public static final BigInteger ONE
Константа BigInteger, равная единице.
Начиная с:
1.2

TWO

public static final BigInteger TWO
Константа BigInteger, равная двум.
Начиная с:
9

TEN

public static final BigInteger TEN
Константа BigInteger, равная десяти.
Начиная с:
1.5

Подробное описание конструкторов

BigInteger

public BigInteger(byte[] val, int off, int len)
Преобразует подмассив байтов, содержащий двоичное представление BigInteger в дополнительном коде, в BigInteger. Подмассив задаётся смещением в массиве и длиной. Предполагается, что байты в подмассиве расположены в порядке от старшего к младшему: наиболее значимый байт находится в элементе с индексом off. Предполагается, что массив val не изменяется в течение вызова конструктора. Выбрасывается IndexOutOfBoundsException, если длина массива val ненулевая и выполняется хотя бы одно из условий: off отрицательно, len отрицательно или off+len больше длины val.
Параметры:
val — массив байтов, содержащий подмассив, который является двоичным представлением BigInteger в дополнительном коде, расположенным в порядке от старшего к младшему.
off — начальное смещение двоичного представления.
len — количество используемых байтов.
Выбрасывает:
NumberFormatException — если длина val равна нулю байтов.
IndexOutOfBoundsException — если заданные смещение и длина массива приводят к отрицательному индексу в массиве байтов или к индексу, большему либо равному длине массива.
Начиная с:
9

BigInteger

public BigInteger(byte[] val)
Преобразует массив байтов, содержащий двоичное представление BigInteger в дополнительном коде, в BigInteger. Предполагается, что байты во входном массиве расположены в порядке от старшего к младшему: наиболее значимый байт находится в элементе с индексом ноль. Предполагается, что массив val не изменяется в течение вызова конструктора.
Параметры:
val — двоичное представление BigInteger в дополнительном коде, расположенное в порядке от старшего к младшему.
Выбрасывает:
NumberFormatException — если длина val равна нулю байтов.

BigInteger

public BigInteger(int signum, byte[] magnitude, int off, int len)
Преобразует представление BigInteger в формате «знак и модуль» в BigInteger. Знак представлен целочисленным значением signum: -1 для отрицательного числа, 0 для нуля или 1 для положительного числа. Модуль — это подмассив массива байтов, расположенный в порядке от старшего к младшему: наиболее значимый байт находится в элементе с индексом off. Допускается нулевая длина len; в этом случае значением BigInteger будет 0 независимо от того, равно signum -1, 0 или 1. Предполагается, что массив magnitude не изменяется в течение вызова конструктора. Выбрасывается IndexOutOfBoundsException, если длина массива magnitude ненулевая и выполняется хотя бы одно из условий: off отрицательно, len отрицательно или off+len больше длины magnitude.
Параметры:
signum — знак числа (-1 для отрицательного числа, 0 для нуля, 1 для положительного числа).
magnitude — двоичное представление модуля числа в порядке от старшего к младшему.
off — начальное смещение двоичного представления.
len — количество используемых байтов.
Выбрасывает:
NumberFormatException — если signum не является одним из трёх допустимых значений (-1, 0 и 1) или если signum равно 0, а magnitude содержит один или несколько ненулевых байтов.
IndexOutOfBoundsException — если заданные смещение и длина массива приводят к отрицательному индексу в массиве байтов или к индексу, большему либо равному длине массива.
Начиная с:
9

BigInteger

public BigInteger(int signum, byte[] magnitude)
Преобразует представление BigInteger в формате «знак и модуль» в BigInteger. Знак представлен целочисленным значением signum: -1 для отрицательного числа, 0 для нуля или 1 для положительного числа. Модуль — это массив байтов, расположенный в порядке от старшего к младшему: наиболее значимый байт находится в нулевом элементе. Допускается массив модуля нулевой длины; в этом случае значением BigInteger будет 0 независимо от того, равно signum -1, 0 или 1. Предполагается, что массив magnitude не изменяется в течение вызова конструктора.
Параметры:
signum — знак числа (-1 для отрицательного числа, 0 для нуля, 1 для положительного числа).
magnitude — двоичное представление модуля числа в порядке от старшего к младшему.
Выбрасывает:
NumberFormatException — если signum не является одним из трёх допустимых значений (-1, 0 и 1) или если signum равно 0, а magnitude содержит один или несколько ненулевых байтов.

BigInteger

public BigInteger(String val, int radix)
Преобразует строковое представление BigInteger в указанной системе счисления в BigInteger. Строковое представление состоит из необязательного знака минус или плюс, за которым следует одна или несколько цифр в указанной системе счисления. Соответствие символов цифрам задаётся методом Character.digit. Строка не должна содержать посторонних символов (например, пробельных).
Параметры:
val — строковое представление BigInteger.
radix — система счисления для интерпретации val.
Выбрасывает:
NumberFormatException — если val не является допустимым представлением BigInteger в указанной системе счисления или если radix находится вне диапазона от Character.MIN_RADIX до Character.MAX_RADIX включительно.

BigInteger

public BigInteger(String val)
Преобразует десятичное строковое представление BigInteger в BigInteger. Строковое представление состоит из необязательного знака минус или плюс, за которым следует одна или несколько десятичных цифр. Соответствие символов цифрам задаётся методом Character.digit. Строка не должна содержать посторонних символов (например, пробельных).
Параметры:
val — десятичное строковое представление BigInteger.
Выбрасывает:
NumberFormatException — если val не является допустимым представлением BigInteger.

BigInteger

public BigInteger(int numBits, Random rnd)
Создаёт случайное значение BigInteger, равномерно распределённое в диапазоне от 0 до (2numBits - 1) включительно. Равномерность распределения предполагает, что в rnd предоставляется источник случайных битов с равномерным распределением. Обратите внимание: этот конструктор всегда создаёт неотрицательное значение BigInteger.
Параметры:
numBits — максимальная длина в битах нового значения BigInteger.
rnd — источник случайных данных, используемый для вычисления нового значения BigInteger.
Выбрасывает:
IllegalArgumentException — если numBits отрицательно.
См. также:
  • bitLength()

BigInteger

public BigInteger(int bitLength, int certainty, Random rnd)
Создаёт случайное положительное значение BigInteger, которое, вероятно, является простым числом, с указанной длиной в битах.
Примечание к API:
Рекомендуется использовать метод probablePrime вместо этого конструктора, если только нет веской причины указывать уровень достоверности.
Параметры:
bitLength — длина в битах возвращаемого значения BigInteger.
certainty — мера неопределённости, которую вызывающий код готов допустить. Вероятность того, что новое значение BigInteger является простым числом, будет больше (1 - 1/2certainty). Время выполнения этого конструктора пропорционально значению данного параметра.
rnd — источник случайных битов, используемый для выбора кандидатов, проверяемых на простоту.
Выбрасывает:
ArithmeticException — если bitLength < 2 или bitLength слишком велико.
См. также:
  • bitLength()

Подробное описание методов

probablePrime

public static BigInteger probablePrime(int bitLength, Random rnd)
Возвращает положительное значение BigInteger, которое, вероятно, является простым числом, с указанной длиной в битах. Вероятность того, что значение BigInteger, возвращаемое этим методом, является составным числом, не превышает 2-100.
Параметры:
bitLength — длина в битах возвращаемого значения BigInteger.
rnd — источник случайных битов, используемый для выбора кандидатов, проверяемых на простоту.
Возвращает:
значение BigInteger длиной bitLength бит, которое, вероятно, является простым числом
Выбрасывает:
ArithmeticException — если bitLength < 2 или bitLength слишком велико.
Начиная с:
1.4
См. также:
  • 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)
Возвращает значение BigInteger, равное указанному long.
Примечание к API:
Этот статический фабричный метод предпочтительнее конструктора (long), поскольку позволяет повторно использовать часто используемые значения BigInteger.
Параметры:
val — значение BigInteger, которое нужно вернуть.
Возвращает:
значение BigInteger с указанным значением.

add

public BigInteger add(BigInteger val)
Возвращает значение BigInteger, равное (this + val).
Параметры:
val — значение, которое нужно прибавить к этому значению BigInteger.
Возвращает:
this + val

subtract

public BigInteger subtract(BigInteger val)
Возвращает значение BigInteger, равное (this - val).
Параметры:
val — значение, которое нужно вычесть из этого значения BigInteger.
Возвращает:
this - val

multiply

public BigInteger multiply(BigInteger val)
Возвращает значение BigInteger, равное (this * val).
Примечание по реализации:
Реализация может обеспечить более высокую алгоритмическую производительность, если val == this.
Параметры:
val — значение, на которое умножается это значение BigInteger.
Возвращает:
this * val

parallelMultiply

public BigInteger parallelMultiply(BigInteger val)
Возвращает значение BigInteger, равное (this * val). Если оба значения this и val велики (обычно имеют длину в тысячи бит), может применяться параллельное умножение. Этот метод возвращает точно такой же математический результат, как multiply(BigInteger).
Примечание по реализации:
Эта реализация может обеспечить более высокую алгоритмическую производительность, если val == this. По сравнению с multiply(BigInteger), алгоритм параллельного умножения в реализации обычно использует больше ресурсов ЦП, чтобы быстрее вычислить результат, и может при этом немного увеличить потребление памяти.
Параметры:
val — значение, на которое умножается это значение BigInteger.
Возвращает:
this * val
Начиная с:
19
См. также:
  • multiply(BigInteger)

divide

public BigInteger divide(BigInteger val)
Возвращает значение BigInteger, равное (this / val).
Параметры:
val — значение, на которое делится это значение BigInteger.
Возвращает:
this / val
Выбрасывает:
ArithmeticException — если val равно нулю.

divideAndRemainder

public BigInteger[] divideAndRemainder(BigInteger val)
Возвращает массив из двух значений BigInteger: сначала (this / val), затем (this % val).
Параметры:
val — значение, на которое делится это значение BigInteger и для которого вычисляется остаток.
Возвращает:
массив из двух значений BigInteger: частное (this / val) является первым элементом, а остаток (this % val) — последним.
Выбрасывает:
ArithmeticException — если val равно нулю.

remainder

public BigInteger remainder(BigInteger val)
Возвращает значение BigInteger, равное (this % val).
Параметры:
val — значение, на которое делится это значение BigInteger и для которого вычисляется остаток.
Возвращает:
this % val
Выбрасывает:
ArithmeticException — если val равно нулю.

pow

public BigInteger pow(int exponent)
Возвращает значение BigInteger, равное (thisexponent). Обратите внимание, что exponent — целое число, а не BigInteger.
Параметры:
exponent — показатель степени, в которую возводится это значение BigInteger.
Возвращает:
thisexponent
Выбрасывает:
ArithmeticException — если exponent отрицательно. (В этом случае результат операции не будет целым числом.)

sqrt

public BigInteger sqrt()
Возвращает целочисленный квадратный корень этого значения BigInteger. Целочисленный квадратный корень соответствующего математического целого числа 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()
Возвращает массив из двух значений BigInteger, содержащий целочисленный квадратный корень s из this и соответствующий остаток this - s*s.
Возвращает:
массив из двух значений BigInteger: целочисленный квадратный корень находится по смещению 0, а остаток — по смещению 1
Выбрасывает:
ArithmeticException — если this отрицательно. (Квадратный корень отрицательного целого числа val равен (i * sqrt(-val)), где i — мнимая единица, равная sqrt(-1).)
Начиная с:
9
См. также:
  • sqrt()

rootn

public BigInteger rootn(int n)
Возвращает целочисленный корень степени n-й из этого значения BigInteger. Целочисленный корень степени n-й r соответствующего математического целого числа x определяется следующим образом:
  • если x ≥ 0, то r ≥ 0 — наибольшее целое число, такое что rn ≤ x;
  • если x < 0, то r ≤ 0 — наименьшее целое число, такое что rn ≥ x.
Если корень определён, он равен значению x.signum()⋅ ⌊|nthRoot(x, n)|⌋, где nthRoot(x, n) обозначает действительный корень степени n-й из x, рассматриваемого как действительное число. В противном случае метод выбрасывает ArithmeticException.

Обратите внимание: модуль целочисленного корня степени n-й будет меньше модуля действительного корня степени n-й, если последний не представим целым значением.

Примечание к API:
Обратите внимание, что вызов rootn(2) эквивалентен вызову sqrt().
Параметры:
n — степень корня
Возвращает:
целочисленный корень степени n-й из this
Выбрасывает:
ArithmeticException — если n <= 0.
ArithmeticException — если n чётно и this отрицательно.
Начиная с:
26
См. также:
  • sqrt()

rootnAndRemainder

public BigInteger[] rootnAndRemainder(int n)
Возвращает массив из двух значений BigInteger, содержащий целочисленный корень степени n-й r из this и соответствующий остаток this - rn.
Примечание к API:
Обратите внимание, что вызов rootnAndRemainder(2) эквивалентен вызову sqrtAndRemainder().
Параметры:
n — степень корня
Возвращает:
массив из двух значений BigInteger: целочисленный корень степени n-й находится по смещению 0, а остаток — по смещению 1
Выбрасывает:
ArithmeticException — если n <= 0.
ArithmeticException — если n чётно и this отрицательно.
Начиная с:
26
См. также:
  • sqrt()
  • sqrtAndRemainder()
  • rootn(int)

gcd

public BigInteger gcd(BigInteger val)
Возвращает значение BigInteger, равное наибольшему общему делителю abs(this) и abs(val). Возвращает 0, если this == 0 && val == 0.
Параметры:
val — значение, с которым вычисляется НОД.
Возвращает:
GCD(abs(this), abs(val))

abs

public BigInteger abs()
Возвращает значение BigInteger, равное абсолютному значению этого значения BigInteger.
Возвращает:
abs(this)

negate

public BigInteger negate()
Возвращает значение BigInteger, равное (-this).
Возвращает:
-this

signum

public int signum()
Возвращает значение функции signum для этого значения BigInteger.
Возвращает:
-1, 0 или 1 в зависимости от того, является ли это значение BigInteger отрицательным, нулевым или положительным.

mod

public BigInteger mod(BigInteger m)
Возвращает значение BigInteger, равное (this mod m). Этот метод отличается от remainder тем, что всегда возвращает неотрицательное значение BigInteger.
Параметры:
m — модуль.
Возвращает:
this mod m
Выбрасывает:
ArithmeticException — если m ≤ 0
См. также:
  • remainder(BigInteger)

modPow

public BigInteger modPow(BigInteger exponent, BigInteger m)
Возвращает значение BigInteger, равное (thisexponent mod m). (В отличие от pow, этот метод допускает отрицательные показатели степени.)
Параметры:
exponent — показатель степени.
m — модуль.
Возвращает:
thisexponent mod m
Выбрасывает:
ArithmeticException — если m ≤ 0 либо если показатель степени отрицателен, а это значение BigInteger не является взаимно простым с m.
См. также:
  • modInverse(BigInteger)

modInverse

public BigInteger modInverse(BigInteger m)
Возвращает значение BigInteger, равное (this-1 по модулю mod m).
Параметры:
m — модуль.
Возвращает:
this-1 по модулю mod m.
Выбрасывает:
ArithmeticException — если m ≤ 0 или это значение BigInteger не имеет обратного по умножению по модулю m (то есть это значение BigInteger не является взаимно простым с m).

shiftLeft

public BigInteger shiftLeft(int n)
Возвращает значение BigInteger, равное (this << n). Расстояние сдвига n может быть отрицательным; в этом случае метод выполняет сдвиг вправо. (Вычисляет floor(this * 2n).)
Параметры:
n — расстояние сдвига в битах.
Возвращает:
this << n
См. также:
  • shiftRight(int)

shiftRight

public BigInteger shiftRight(int n)
Возвращает значение BigInteger, равное (this >> n). Выполняется знаковое расширение. Расстояние сдвига n может быть отрицательным; в этом случае метод выполняет сдвиг влево. (Вычисляет floor(this / 2n).)
Параметры:
n — расстояние сдвига в битах.
Возвращает:
this >> n
См. также:
  • shiftLeft(int)

and

public BigInteger and(BigInteger val)
Возвращает значение BigInteger, равное (this & val). (Этот метод возвращает отрицательное значение BigInteger тогда и только тогда, когда и это значение, и val отрицательны.)
Параметры:
val — значение, к которому применяется операция AND с этим значением BigInteger.
Возвращает:
this & val

or

public BigInteger or(BigInteger val)
Возвращает значение BigInteger, равное (this | val). (Этот метод возвращает отрицательное значение BigInteger тогда и только тогда, когда отрицательно это значение или val.)
Параметры:
val — значение, к которому применяется операция OR с этим значением BigInteger.
Возвращает:
this | val

xor

public BigInteger xor(BigInteger val)
Возвращает значение BigInteger, равное (this ^ val). (Этот метод возвращает отрицательное значение BigInteger тогда и только тогда, когда ровно одно из значений — это значение или val — отрицательно.)
Параметры:
val — значение, к которому применяется операция XOR с этим значением BigInteger.
Возвращает:
this ^ val

not

public BigInteger not()
Возвращает значение BigInteger, равное (~this). (Этот метод возвращает отрицательное значение тогда и только тогда, когда это значение BigInteger неотрицательно.)
Возвращает:
~this

andNot

public BigInteger andNot(BigInteger val)
Возвращает BigInteger, значение которого равно (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 отрицателен.

setBit

public BigInteger setBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с установленным указанным битом. (Вычисляет (this | (1<<n)).)
Параметры:
n — индекс устанавливаемого бита.
Возвращает:
this | (1<<n)
Выбрасывает:
ArithmeticException — если n отрицателен.

clearBit

public BigInteger clearBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с очищенным указанным битом. (Вычисляет (this & ~(1<<n)).)
Параметры:
n — индекс очищаемого бита.
Возвращает:
this & ~(1<<n)
Выбрасывает:
ArithmeticException — если n отрицателен.

flipBit

public BigInteger flipBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с инвертированным указанным битом. (Вычисляет (this ^ (1<<n)).)
Параметры:
n — индекс инвертируемого бита.
Возвращает:
this ^ (1<<n)
Выбрасывает:
ArithmeticException — если n отрицателен.

getLowestSetBit

public int getLowestSetBit()
Возвращает индекс крайнего правого (младшего) единичного бита в этом BigInteger (количество нулевых битов справа от крайнего правого единичного бита). Возвращает -1, если этот BigInteger не содержит единичных битов. (Вычисляет (this == 0? -1 : log2(this & -this)).)
Возвращает:
индекс крайнего правого единичного бита в этом BigInteger.

bitLength

public int bitLength()
Возвращает количество битов в минимальном представлении этого BigInteger в дополнительном коде, не включая знаковый бит. Для положительных BigInteger это эквивалентно количеству битов в обычном двоичном представлении. Для нуля этот метод возвращает 0. (Вычисляет (ceil(log2(this < 0 ? -this : this+1))).)
Возвращает:
количество битов в минимальном представлении этого BigInteger в дополнительном коде, не включая знаковый бит.

bitCount

public int bitCount()
Возвращает количество битов в представлении этого BigInteger в дополнительном коде, отличающихся от его знакового бита. Этот метод полезен при реализации наборов в виде битовых векторов на основе BigInteger.
Возвращает:
количество битов в представлении этого 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)
Сравнивает этот BigInteger с указанным BigInteger. Этот метод предоставляется вместо отдельных методов для каждого из шести операторов сравнения с булевым результатом (<, ==, >, >=, !=, <=). Рекомендуемый способ выполнения таких сравнений: (x.compareTo(y) <op> 0), где <op> — один из шести операторов сравнения.
Определён в:
compareTo в интерфейсе Comparable<BigInteger>
Параметры:
val — BigInteger, с которым сравнивается этот BigInteger.
Возвращает:
-1, 0 или 1, если этот BigInteger численно меньше, равен или больше val соответственно.

equals

public boolean equals(Object x)
Сравнивает этот BigInteger с указанным объектом на равенство.
Переопределяет:
equals в классе Object
Параметры:
x — объект, с которым сравнивается этот BigInteger.
Возвращает:
true тогда и только тогда, когда указанный объект является BigInteger, численное значение которого равно значению этого BigInteger.
См. также:
  • Object.hashCode()
  • HashMap

min

public BigInteger min(BigInteger val)
Возвращает минимальное из значений этого BigInteger и val.
Параметры:
val — значение, с которым вычисляется минимум.
Возвращает:
BigInteger, значение которого меньше из значений этого BigInteger и val. Если они равны, может быть возвращено любое из них.

max

public BigInteger max(BigInteger val)
Возвращает максимальное из значений этого BigInteger и val.
Параметры:
val — значение, с которым вычисляется максимум.
Возвращает:
BigInteger, значение которого больше из значений этого BigInteger и val. Если они равны, может быть возвращено любое из них.

hashCode

public int hashCode()
Возвращает хэш-код этого BigInteger.
Переопределяет:
hashCode в классе Object
Возвращает:
хэш-код этого BigInteger
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

toString

public String toString(int radix)
Возвращает строковое представление этого BigInteger в заданной системе счисления. Если основание системы счисления выходит за пределы диапазона от Character.MIN_RADIX до Character.MAX_RADIX включительно, по умолчанию используется основание 10 (как и в Integer.toString). Используется соответствие цифр символам, предоставляемое Character.forDigit; при необходимости перед числом ставится знак минус. (Это представление совместимо с конструктором (String, int).)
Параметры:
radix — основание системы счисления для строкового представления.
Возвращает:
строковое представление этого BigInteger в заданной системе счисления.
См. также:
  • Integer.toString(int, int)
  • Character.forDigit(int, int)
  • BigInteger(java.lang.String, int)

toString

public String toString()
Возвращает десятичное строковое представление этого BigInteger. Используется соответствие цифр символам, предоставляемое Character.forDigit; при необходимости перед числом ставится знак минус. (Это представление совместимо с конструктором (String) и позволяет выполнять конкатенацию строк с помощью оператора + в Java.)
Переопределяет:
toString в классе Object
Возвращает:
десятичное строковое представление этого BigInteger.
См. также:
  • Character.forDigit(int, int)
  • BigInteger(java.lang.String)

toByteArray

public byte[] toByteArray()
Возвращает массив байтов, содержащий представление этого BigInteger в дополнительном коде. Байты в массиве расположены в порядке от старшего к младшему: самый значащий байт находится в элементе с индексом ноль. Массив содержит минимальное количество байтов, необходимое для представления этого BigInteger, включая как минимум один знаковый бит, который равен (ceil((this.bitLength() + 1)/8)). (Это представление совместимо с конструктором (byte[]).)
Возвращает:
массив байтов, содержащий представление этого BigInteger в дополнительном коде.
См. также:
  • BigInteger(byte[])

intValue

public int intValue()
Преобразует этот BigInteger в int. Это преобразование аналогично сужающему преобразованию примитивов из long в int, определённому в Спецификации языка Java: если этот BigInteger слишком велик, чтобы поместиться в int, возвращаются только младшие 32 бита. Обратите внимание, что при таком преобразовании могут быть потеряны сведения об общей величине значения BigInteger, а результат может иметь противоположный знак.
Определён в:
intValue в классе Number
Возвращает:
этот BigInteger, преобразованный в int.
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивов
См. также:
  • intValueExact()

longValue

public long longValue()
Преобразует этот BigInteger в long. Это преобразование аналогично сужающему преобразованию примитивов из long в int, определённому в Спецификации языка Java: если этот BigInteger слишком велик, чтобы поместиться в long, возвращаются только младшие 64 бита. Обратите внимание, что при таком преобразовании могут быть потеряны сведения об общей величине значения BigInteger, а результат может иметь противоположный знак.
Определён в:
longValue в классе Number
Возвращает:
этот BigInteger, преобразованный в long.
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивов
См. также:
  • longValueExact()

floatValue

public float floatValue()
Преобразует этот BigInteger в 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()
Преобразует этот BigInteger в 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.
Начиная с версии:
1.8
См. также:
  • longValue()

intValueExact

public int intValueExact()
Преобразует этот BigInteger в int с проверкой на потерю информации. Если значение этого BigInteger выходит за пределы диапазона типа int, выбрасывается ArithmeticException.
Возвращает:
этот BigInteger, преобразованный в int.
Выбрасывает:
ArithmeticException — если значение this невозможно точно представить в виде int.
Начиная с версии:
1.8
См. также:
  • intValue()

shortValueExact

public short shortValueExact()
Преобразует этот BigInteger в short с проверкой на потерю информации. Если значение этого BigInteger выходит за пределы диапазона типа short, выбрасывается ArithmeticException.
Возвращает:
этот BigInteger, преобразованный в short.
Выбрасывает:
ArithmeticException — если значение this невозможно точно представить в виде short.
Начиная с версии:
1.8
См. также:
  • Number.shortValue()

byteValueExact

public byte byteValueExact()
Преобразует этот BigInteger в byte с проверкой на потерю информации. Если значение этого BigInteger выходит за пределы диапазона типа byte, выбрасывается ArithmeticException.
Возвращает:
этот BigInteger, преобразованный в byte.
Выбрасывает:
ArithmeticException — если значение this невозможно точно представить в виде byte.
Начиная с версии:
1.8
См. также:
  • Number.byteValue()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API