Spec-Zone.ru › OpenJDK 17

Класс 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 при передаче нулевого ссылки объекта для любого входного параметра. BigInteger должен поддерживать значения в диапазоне от -2Integer.MAX_VALUE (исключая) до +2Integer.MAX_VALUE (исключая) и может поддерживать значения вне этого диапазона. ArithmeticException выбрасывается, когда конструктор или метод BigInteger генерируют значение вне поддерживаемого диапазона. Диапазон вероятных простых чисел ограничен и может быть меньше полного поддерживаемого положительного диапазона 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()
Возвращает индекс правого (самого младшего) бита единицы в этом 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 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()
Возвращает функцию 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 - 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 предполагается неизменным на протяжении вызова конструктора.
Parameters:
signum - знак числа (-1 для отрицательного, 0 для нулевого, 1 для положительного).
magnitude - представление в формате big-endian двоичного модуля числа.
Throws:
NumberFormatException - signum не равно одному из трех допустимых значений (-1, 0 и 1) или signum равно 0, а magnitude содержит один или несколько ненулевых байтов.

BigInteger

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

BigInteger

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

BigInteger

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

BigInteger

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

Методы

probablePrime

public static BigInteger probablePrime(int bitLength, Random rnd)
Возвращает положительное целое число BigInteger, которое, вероятно, является простым числом, с заданной длиной в битах. Вероятность того, что BigInteger, возвращаемый этим методом, является составным, не превышает 2-100.
Parameters:
bitLength - длина в битах возвращаемого BigInteger.
rnd - источник случайных битов, используемых для выбора кандидатов, которые будут проверяться на простоту.
Returns:
BigInteger из bitLength битов, который, вероятно, является простым числом
Throws:
ArithmeticException - bitLength < 2 или bitLength слишком велики.
Since:
1.4
See Also:
  • bitLength()

nextProbablePrime

public BigInteger nextProbablePrime()
Возвращает первое целое число, большее этого BigInteger, которое, вероятно, является простым. Вероятность того, что число, возвращаемое этим методом, является составным, не превышает 2-100. Этот метод никогда не пропустит простое число при поиске: если он возвращает p, нет простого числа q, такого что this < q < p.
Returns:
первое целое число, большее этого BigInteger, которое, вероятно, является простым числом.
Throws:
ArithmeticException - this < 0 или this слишком велики.
Since:
1.5

valueOf

public static BigInteger valueOf(long val)
Возвращает BigInteger, значение которого равно значению указанного long.
API Note:
Этот статический фабричный метод предоставляется в предпочтительном порядке по сравнению с конструктором (long) , так как он позволяет повторно использовать часто используемые BigInteger.
Parameters:
val - значение возвращаемого BigInteger.
Returns:
BigInteger со значением, указанным в параметре.

add

public BigInteger add(BigInteger val)
Возвращает BigInteger, значение которого равно (this + val).
Parameters:
val - значение, которое нужно добавить к этому BigInteger.
Returns:
this + val

subtract

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

multiply

public BigInteger multiply(BigInteger val)
Возвращает BigInteger, значение которого равно (this * val).
Implementation Note:
Реализация может предложить лучшую алгоритмическую производительность, когда val == this.
Parameters:
val - значение, на которое нужно умножить этот BigInteger.
Returns:
this * val

divide

public BigInteger divide(BigInteger val)
Возвращает BigInteger, значение которого равно (this / val).
Parameters:
val - значение, на которое нужно разделить этот BigInteger.
Returns:
this / val
Throws:
ArithmeticException - если val равно нулю.

divideAndRemainder

public BigInteger[] divideAndRemainder(BigInteger val)
Возвращает массив из двух BigInteger, содержащий (this / val) за которым следует (this % val).
Parameters:
val - значение, на которое нужно разделить этот BigInteger, и вычислить остаток.
Returns:
массив из двух BigInteger: частное (this / val) является начальным элементом, а остаток (this % val) является конечным элементом.
Throws:
ArithmeticException - если val равно нулю.

remainder

public BigInteger remainder(BigInteger val)
Возвращает BigInteger, значение которого равно (this % val).
Parameters:
val - значение, на которое нужно разделить этот BigInteger, и вычислить остаток.
Returns:
this % val
Throws:
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(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)

modОбратный

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

shiftLeft

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

shiftRight

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

and

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

or

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

xor

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

not

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

andNot

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

testBit

public boolean testBit(int n)
Возвращает true тогда и только тогда, когда заданный бит установлен. (Вычисляет ((this & (1<<n)) != 0).)
Parameters:
n - индекс бита для проверки.
Returns:
true тогда и только тогда, когда заданный бит установлен.
Throws:
ArithmeticException - n отрицательный.

setBit

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

clearBit

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

flipBit

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

getLowestSetBit

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

bitLength

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

bitCount

public int bitCount()
Возвращает количество битов в представлении этого BigInteger в дополнительном коде к двум, которые отличаются от его бита знака. Этот метод полезен при реализации наборов в стиле битовых векторов на основе BigInteger.
Returns:
количество битов в представлении этого BigInteger в дополнительном коде к двум, которые отличаются от его бита знака.

isProbablePrime

public boolean isProbablePrime(int certainty)
Возвращает true если этот BigInteger, вероятно, является простым, false если он определённо составной. Если certainty ≤ 0, возвращается true.
Parameters:
certainty - мера неопределённости, которую вызывающий готов терпеть: если вызов возвращает true вероятность того, что этот BigInteger является простым, превышает (1 - 1/2certainty). Время выполнения этого метода пропорционально значению этого параметра.
Returns:
true если этот BigInteger, вероятно, является простым, false если он определённо составной.

compareTo

public int compareTo(BigInteger val)
Сравнивает этот BigInteger с указанным BigInteger. Этот метод предоставляется вместо отдельных методов для каждого из шести логических операторов сравнения (<, ==, >, >=, !=, <=). Предлагаемый стиль для выполнения этих сравнений: (x.compareTo(y) <op> 0), где <op> — один из шести операторов сравнения.
Specified by:
compareTo в интерфейсе Comparable<BigInteger>
Parameters:
val - BigInteger, с которым необходимо сравнить этот BigInteger.
Returns:
-1, 0 или 1, в зависимости от того, является ли этот BigInteger численно меньше, равен или больше val.

equals

public boolean equals(Object x)
Сравнивает этот BigInteger с указанным объектом на предмет равенства.
Overrides:
equals в классе Object
Parameters:
x - Объект, с которым необходимо сравнить этот BigInteger.
Returns:
true тогда и только тогда, когда указанный объект является BigInteger, значение которого численно равно этому BigInteger.
See Also:
  • Object.hashCode()
  • HashMap

min

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

max

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

hashCode

public int hashCode()
Возвращает код хэша для этого BigInteger.
Overrides:
hashCode in class Object
Returns:
код хэша для этого BigInteger.
See Also:
  • 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 in class Object
Returns:
десятичное строковое представление этого BigInteger.
See Also:
  • Character.forDigit(int, int)
  • BigInteger(java.lang.String)

toByteArray

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

intValue

public int intValue()
Преобразует этот BigInteger в int. Это преобразование аналогично преобразованию примитивного типа сужения от long до int, как определено в Спецификации языка Java: если этот BigInteger слишком большой для размещения в int, возвращаются только младшие 32 бита. Обратите внимание, что это преобразование может привести к потере информации о целом значении величины BigInteger, а также вернуть результат с обратным знаком.
Specified by:
intValue in class Number
Returns:
этот BigInteger, преобразованный в int.
See Java Language Specification:
5.1.3 Narrowing Primitive Conversion
See Also:
  • intValueExact()

longValue

public long longValue()
Преобразует этот BigInteger в long. Это преобразование аналогично преобразованию примитивного типа сужения от long до int, как определено в Спецификации языка Java: если этот BigInteger слишком большой для размещения в long, возвращаются только младшие 64 бита. Обратите внимание, что это преобразование может привести к потере информации о целом значении величины BigInteger, а также вернуть результат с обратным знаком.
Specified by:
longValue in class Number
Returns:
этот BigInteger, преобразованный в long.
See Java Language Specification:
5.1.3 Narrowing Primitive Conversion
See Also:
  • 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()

© 1993, 2021, 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/17/docs/api/java.base/java/math/BigInteger.html

Spec-Zone.ru

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