Spec-Zone.ru › OpenJDK 21

Класс BigInteger

java.lang.Object
java.lang.Number
java.math.BigInteger
Все реализованные интерфейсы:
Serializable, Comparable<BigInteger>
public class BigInteger extends Number implements Comparable<BigInteger>
Неизменяемые целые числа произвольной точности. Все операции ведут себя так, как если бы BigIntegers были представлены в дополнении до двух (как примитивные целочисленные типы Java). BigInteger предоставляет аналоги всех примитивных целочисленных операторов Java и всех соответствующих методов из java.lang.Math. Кроме того, 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
См. также:
  • 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()
Возвращает индекс самого правого (самого младшего) бита 1 в этом BigInteger (число нулевых битов справа от самого правого бита 1).
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).

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

byteValue, shortValue

Методы, объявленные в классе java.lang.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. Подмассив задаётся смещением в массиве и длиной. Предполагается, что подмассив находится в big-endian порядке байтов: наиболее значимый байт находится по индексу off. Предполагается, что массив val не изменяется в течение вызова конструктора. Бросается исключение IndexOutOfBoundsException, если длина массива val равна нулю, либо off отрицательно, len отрицательно, или off+len больше длины val.
Параметры:
val - массив байтов, содержащий подмассив, представляющий собой двоичное представление BigInteger в дополнении до двух в big-endian порядке.
off - начальное смещение бинарного представления.
len - количество байтов для использования.
Исключения:
NumberFormatException - val имеет длину ноль байтов.
IndexOutOfBoundsException - если предоставленное смещение и длина массива вызывают индекс в массиве байтов, который отрицательный или больше или равен длине массива.
С момента:
9

BigInteger

public BigInteger(byte[] val)
Преобразует массив байтов, содержащий двоичное представление числа BigInteger в дополнении до двух, в объект BigInteger. Предполагается, что входной массив имеет порядок байтов big-endian: самый значимый байт находится в нулевом элементе. Массив val предполагается неизменным в течение вызова конструктора.
Параметры:
val - представление BigInteger в двоичном формате дополнения до двух с порядком байтов big-endian.
Исключения:
NumberFormatException - val имеет нулевую длину.

BigInteger

public BigInteger(int signum, byte[] magnitude, int off, int len)
Преобразует представление числа BigInteger в формате знак-величина в объект BigInteger. Знак представлен целым значением signum: -1 для отрицательного, 0 для нуля или 1 для положительного. Величина — это подмассив массива байтов в формате big-endian: самый значимый байт находится в элементе с индексом 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)
Преобразует представление со знаком и модулем BigInteger в BigInteger. Знак представлен целым значением signum: -1 для отрицательного, 0 для нулевого или 1 для положительного. Модуль — это массив байтов в big-endian порядке: самый старший байт — это нулевой элемент. Разрешается массив модуля нулевой длины, что приведет к значению BigInteger 0, независимо от того, равен ли signum -1, 0 или 1. Предполагается, что массив magnitude не изменится в течение вызова конструктора.
Параметры:
signum - знак числа (-1 для отрицательного, 0 для нулевого, 1 для положительного).
magnitude - big-endian двоичное представление модуля числа.
Исключения:
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 слишком велики.
См. также:
  • 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(java.math.BigInteger).
Примечание реализации:
Эта реализация может предложить лучшую алгоритмическую производительность, когда val == this. По сравнению с multiply(java.math.BigInteger), алгоритм параллельного умножения реализации обычно использует больше ресурсов ЦП для более быстрого вычисления результата и может делать это с небольшим увеличением потребления памяти.
Параметры:
val - значение, которое нужно умножить на этот BigInteger.
Возвращает:
this * val
С:
19
См. также:
  • multiply(java.math.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 равно нулю.

остаток

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()
Возвращает массив из двух BigIntegers, содержащий целую часть квадратного корня s из this и остаток this - s*s, соответственно.
Возвращает:
массив из двух BigIntegers, где целая часть квадратного корня находится в элементе с индексом 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()
Возвращает функцию 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(java.math.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(java.math.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)

и

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

или

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

исключающее ИЛИ

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

не

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 отрицательно.

Установить бит

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

Очистить бит

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

Переключить бит

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

getLowestSetBit

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

разрядность

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 с указанным объектом на равенство.
Overrides:
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, значение которого является большим из этого и val. Если они равны, может быть возвращено любое из них.

hashCode

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

toString

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

toString

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

toByteArray

public byte[] toByteArray()
Возвращает массив байтов, содержащий представление этого BigInteger в дополнительном коде. Массив байтов будет в big-endian порядке: самый значимый байт находится в нулевом элементе. Массив будет содержать минимальное количество байтов, необходимое для представления этого 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.
C тех пор как:
1.8
См. также:
  • longValue()

intValueExact

public int intValueExact()
Преобразует этот BigInteger в int, проверяя потерю информации. Если значение этого BigInteger выходит за пределы диапазона типа int, будет брошено исключение ArithmeticException.
Возвращает:
этот BigInteger преобразованный в int.
Исключения:
ArithmeticException - если значение this не поместится точно в int.
C тех пор как:
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()

© 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

Spec-Zone.ru

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