Spec-Zone.ru › OpenJDK 25

Класс 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». Другие псевдокодовые выражения интерпретируются аналогичным образом.

Все методы и конструкторы этого класса при передаче null-ссылки в качестве любого входного параметра вызывают NullPointerException. BigInteger должен поддерживать значения в диапазоне от -2Integer.MAX_VALUE (не включая границу) до +2Integer.MAX_VALUE (не включая границу) и может поддерживать значения за пределами этого диапазона. Если конструктор или метод BigInteger приводит к созданию значения за пределами поддерживаемого диапазона, вызывается ArithmeticException. Диапазон вероятных простых чисел ограничен и может быть меньше полного поддерживаемого положительного диапазона 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)
Возвращает BigInteger, значение которого равно наибольшему общему делителю 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 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

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

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()

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()
Возвращает знак этого числа 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 — значение, которое инвертируется и объединяется с этим числом BigInteger операцией AND.
Возвращает:
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 в дополнительном коде. Байты в массиве располагаются в порядке от старшего к младшему: самый значащий байт находится в элементе с индексом 0. Массив содержит минимальное число байтов, необходимое для представления этого значения 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/math/BigInteger.html

Spec-Zone.ru

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