Класс BigInteger
- Все реализованные интерфейсы:
-
Serializable,Comparable<BigInteger>
public class BigInteger extends Number implements Comparable<BigInteger>
Семантика арифметических операций точно имитирует семантику целочисленных арифметических операторов Java, как определено в Спецификации языка Java. Например, деление на ноль вызывает исключение ArithmeticException, а деление отрицательного числа на положительное дает отрицательный (или нулевой) остаток.
Семантика операций сдвига расширяет семантику операторов сдвига Java, чтобы позволить отрицательные значения сдвига. Сдвиг вправо с отрицательным значением сдвига приводит к сдвигу влево, и наоборот. Оператор беззнакового сдвига вправо (>>>) опущен, поскольку эта операция имеет смысл только для слова фиксированной длины, а не для представления, концептуально имеющего бесконечное количество виртуальных знаковых битов.
Семантика побитовых логических операций точно имитирует семантику побитовых целочисленных операторов Java. Бинарные операторы (and, or, xor) неявно выполняют расширение знака для более короткого из двух операндов перед выполнением операции.
Операции сравнения выполняют сравнения целых чисел со знаком, аналогично сравнениям, выполняемым операторами отношения и равенства Java.
Предоставляются операции модулярной арифметики для вычисления остатков, выполнения возведения в степень и вычисления мультипликативных обратных элементов. Эти методы всегда возвращают неотрицательный результат, в диапазоне от 0 до (modulus - 1) включительно.
Операции с битами работают с одним битом в представлении своего операнда в дополнительном коде к двум. При необходимости операнд расширяется знаком, чтобы содержать указанный бит. Ни одна из операций с одним битом не может создать BigInteger с другим знаком, чем у оперируемого BigInteger, так как они влияют только на один бит, и абстракция произвольной длины, предоставляемая этим классом, гарантирует, что концептуально существует бесконечно много «виртуальных знаковых битов», предшествующих каждому BigInteger.
Для краткости и ясности в описаниях методов BigInteger используется псевдокод. Выражение псевдокода (i + j) обозначает "BigInteger, значение которого равно значению BigInteger i плюс значение BigInteger j". Выражение псевдокода (i == j) означает "true тогда и только тогда, когда BigInteger i представляет то же значение, что и BigInteger j". Другие выражения псевдокода интерпретируются аналогично.
Все методы и конструкторы в этом классе выбрасывают NullPointerException при передаче нулевого ссылки на объект для любого входного параметра. BigInteger должен поддерживать значения в диапазоне от -2Integer.MAX_VALUE (исключая) до +2Integer.MAX_VALUE (исключая), и может поддерживать значения вне этого диапазона. Исключение ArithmeticException выбрасывается, когда конструктор или метод BigInteger генерирует значение, выходящее за поддерживаемый диапазон. Диапазон вероятных простых чисел ограничен и может быть меньше полного поддерживаемого положительного диапазона BigInteger. Диапазон должен быть не менее 1 до 2500000000.
- Заметка по API:
-
Так как значения
BigIntegerявляются целыми числами произвольной точности, алгоритмическая сложность методов этого класса варьируется и может быть суперлинейной по размеру входных данных. Например, метод, подобныйintValue(), должен работать за время O(1), то есть за постоянное время, поскольку в текущем внутреннем представлении для выполнения преобразования вintтребуется доступ только к фиксированной компонентеBigInteger. В противоположность этому, метод, подобныйnot(), должен работать за время O(n), где n — размерBigIntegerв битах, то есть за время, пропорциональное размеру входных данных. Для умножения двух значенийBigIntegerразмера n, алгоритм умножения по наивности будет работать за время O(n2), и теоретические результаты показывают, что алгоритм умножения для чисел, использующих этот тип представления, должен работать как минимум за O(n log n). Распространенные алгоритмы умножения между наивным и теоретическим случаями включают умножение Карацубы (O(n1.585)) и 3-стороннее умножение Тома-Кука (O(n1.465)).Конкретная реализация
multiplyможет свободно переключаться между различными алгоритмами для различных входных данных, например, чтобы улучшить фактическое время выполнения для получения произведения, используя более простые алгоритмы для меньших входных данных, даже если у более простого алгоритма более высокая асимптотическая сложность.Операции также могут выделять и обрабатывать промежуточные результаты, потенциально такие выделения могут быть пропорциональны времени выполнения алгоритма.
Пользователи
BigInteger, озабоченные ограничением времени выполнения или объема памяти операций, могут отфильтровать значенияBigInteger, превышающие выбранное значение. - Заметка по реализации:
- В эталонной реализации конструкторы и операции BigInteger выбрасывают
ArithmeticException, когда результат выходит за поддерживаемый диапазон от -2Integer.MAX_VALUE(исключая) до +2Integer.MAX_VALUE(исключая). - См. Спецификацию языка Java:
- 4.2.2 Целочисленные операции
- С момента:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final BigInteger |
ONE |
Константа BigInteger единица. |
static final BigInteger |
TEN |
Константа BigInteger десять. |
static final BigInteger |
TWO |
Константа BigInteger два. |
static final BigInteger |
ZERO |
Константа BigInteger ноль. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
BigInteger |
Преобразует массив байтов, содержащий двоичное представление BigInteger в дополнительном коде к двум, в BigInteger. |
BigInteger |
Преобразует подмассив байтов, содержащий двоичное представление BigInteger в дополнительном коде к двум, в BigInteger. |
BigInteger |
Преобразует представление BigInteger в формате знак-величина в BigInteger. |
BigInteger |
Преобразует представление BigInteger в формате знак-величина в BigInteger. |
BigInteger |
Создает случайный положительный BigInteger, который, вероятно, является простым, с указанной длиной в битах. |
BigInteger |
Создает случайный BigInteger, равномерно распределённый в диапазоне от 0 до (2 numBits - 1) включительно. |
BigInteger |
Преобразует десятичное строковое представление BigInteger в BigInteger. |
BigInteger |
Преобразует строковое представление BigInteger в заданной системе счисления в BigInteger. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
BigInteger |
abs() |
Возвращает BigInteger, значение которого равно модулю этого BigInteger. |
BigInteger |
add |
Возвращает BigInteger, значение которого равно (this + val). |
BigInteger |
and |
Возвращает BigInteger, значение которого равно (this & val). |
BigInteger |
andNot |
Возвращает BigInteger, значение которого равно (this & ~val). |
int |
bitCount() |
Возвращает количество битов в представлении этого BigInteger в дополнении до двух, отличающихся от его знака. |
int |
bitLength() |
Возвращает количество битов в минимальном представлении этого BigInteger в дополнении до двух, исключая бит знака. |
byte |
byteValueExact() |
Преобразует этот BigInteger в byte, проверяя потерю информации. |
BigInteger |
clearBit |
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с очищенным указанным битом. |
int |
compareTo |
Сравнивает этот BigInteger со значением указанного BigInteger. |
BigInteger |
divide |
Возвращает BigInteger, значение которого равно (this / val). |
BigInteger[] |
divideAndRemainder |
Возвращает массив из двух BigInteger, содержащий (this / val), после чего (this % val). |
double |
doubleValue() |
Преобразует этот BigInteger в double. |
boolean |
equals |
Сравнивает этот BigInteger с указанным объектом на равенство. |
BigInteger |
flipBit |
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с переключенным указанным битом. |
float |
floatValue() |
Преобразует этот BigInteger в float. |
BigInteger |
gcd |
Возвращает BigInteger, значение которого является наибольшим общим делителем abs(this) и abs(val). |
int |
getLowestSetBit() |
Возвращает индекс правого (самого младшего) бита 1 в этом BigInteger (число нулевых битов справа от правого бита 1). |
int |
hashCode() |
Возвращает хэш-код для этого BigInteger. |
int |
intValue() |
Преобразует этот BigInteger в int. |
int |
intValueExact() |
Преобразует этот BigInteger в int, проверяя потерю информации. |
boolean |
isProbablePrime |
Возвращает true, если этот BigInteger, вероятно, является простым, false, если он определенно составной. |
long |
longValue() |
Преобразует этот BigInteger в long. |
long |
longValueExact() |
Преобразует этот BigInteger в long, проверяя потерю информации. |
BigInteger |
max |
Возвращает максимальное значение этого BigInteger и val. |
BigInteger |
min |
Возвращает минимальное значение этого BigInteger и val. |
BigInteger |
mod |
Возвращает BigInteger, значение которого равно (this mod m). |
BigInteger |
modInverse |
Возвращает BigInteger, значение которого равно (this-1 mod m). |
BigInteger |
modPow |
Возвращает BigInteger, значение которого равно (thisexponent mod m). |
BigInteger |
multiply |
Возвращает BigInteger, значение которого равно (this * val). |
BigInteger |
negate() |
Возвращает BigInteger, значение которого равно (-this). |
BigInteger |
nextProbablePrime() |
Возвращает первое целое число, большее этого BigInteger, которое, вероятно, является простым. |
BigInteger |
not() |
Возвращает BigInteger, значение которого равно (~this). |
BigInteger |
or |
Возвращает BigInteger, значение которого равно (this | val). |
BigInteger |
parallelMultiply |
Возвращает BigInteger, значение которого равно (this * val). |
BigInteger |
pow |
Возвращает BigInteger, значение которого равно (thisexponent). |
static BigInteger |
probablePrime |
Возвращает положительный BigInteger, который, вероятно, является простым, с заданной bitLength. |
BigInteger |
remainder |
Возвращает BigInteger, значение которого равно (this % val). |
BigInteger |
setBit |
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с установленным указанным битом. |
BigInteger |
shiftLeft |
Возвращает BigInteger, значение которого равно (this << n). |
BigInteger |
shiftRight |
Возвращает BigInteger, значение которого равно (this >> n). |
short |
shortValueExact() |
Преобразует этот BigInteger в short, проверяя потерю информации. |
int |
signum() |
Возвращает функцию signum для этого BigInteger. |
BigInteger |
sqrt() |
Возвращает целую квадратную корень из этого BigInteger. |
BigInteger[] |
sqrtAndRemainder() |
Возвращает массив из двух BigInteger, содержащий целую квадратную корень s из this и его остаток this - s*s, соответственно. |
BigInteger |
subtract |
Возвращает BigInteger, значение которого равно (this - val). |
boolean |
testBit |
Возвращает true тогда и только тогда, когда указанный бит установлен. |
byte[] |
toByteArray() |
Возвращает массив байтов, содержащий представление этого BigInteger в дополнении до двух. |
String |
toString() |
Возвращает строковое представление этого BigInteger в десятичной системе. |
String |
toString |
Возвращает строковое представление этого BigInteger в заданной системе счисления. |
static BigInteger |
valueOf |
Возвращает BigInteger, значение которого равно значению указанного long. |
BigInteger |
xor |
Возвращает BigInteger, значение которого равно (this ^ val). |
Методы, объявленные в классе java.lang.Number
byteValue, shortValue
Подробное описание полей
ZERO
public static final BigInteger ZERO
- С:
- 1.2
ONE
public static final BigInteger ONE
- С:
- 1.2
TWO
public static final BigInteger TWO
- С:
- 9
TEN
public static final BigInteger TEN
- С:
- 1.5
Подробное описание конструкторов
BigInteger
public BigInteger(byte[] val, int off, int len)
off. Массив val предполагается неизменным на протяжении вызова конструктора. Бросает IndexOutOfBoundsException, если длина массива val равна нулю и либо off отрицательно, либо len отрицательно, либо off+len больше длины val.- Параметры:
-
val- массив байтов, содержащий подмассив, являющийся двоичным представлением BigInteger в дополнении до двух в формате big-endian. -
off- начальное смещение двоичного представления. -
len- количество байтов для использования. - Исключения:
-
NumberFormatException-valимеет нулевую длину. -
IndexOutOfBoundsException- если предоставленные смещение и длина массива вызовут отрицательный или равный или больший, чем длина массива, индекс. - С:
- 9
BigInteger
public BigInteger(byte[] val)
val предполагается неизменным на протяжении вызова конструктора.- Параметры:
-
val- двоичное представление BigInteger в дополнении до двух в формате big-endian. - Исключения:
-
NumberFormatException-valимеет нулевую длину.
BigInteger
public BigInteger(int signum, byte[] magnitude, int off, int len)
off. Нулевая длина len допустима и приведёт к значению BigInteger 0, независимо от знака signum (-1, 0 или 1). Массив magnitude предполагается неизменным на протяжении вызова конструктора. Бросает IndexOutOfBoundsException, если длина массива magnitude не равна нулю и либо off отрицательно, либо len отрицательно, либо off+len больше длины magnitude.- Параметры:
-
signum- signum числа (-1 для отрицательного, 0 для нуля, 1 для положительного). -
magnitude- big-endian двоичное представление абсолютного значения числа. -
off- начальное смещение двоичного представления. -
len- количество байтов для использования. - Исключения:
-
NumberFormatException-signumне равно одному из трёх допустимых значений (-1, 0 и 1) илиsignumравно 0 иmagnitudeсодержит один или несколько ненулевых байтов. -
IndexOutOfBoundsException- если предоставленные смещение и длина массива вызовут отрицательный или равный или больший, чем длина массива, индекс. - С:
- 9
BigInteger
public BigInteger(int signum, byte[] magnitude)
magnitude предполагается неизменным на протяжении вызова конструктора.- Параметры:
-
signum- signum числа (-1 для отрицательного, 0 для нуля, 1 для положительного). -
magnitude- big-endian двоичное представление величины числа. - Исключения:
-
NumberFormatException-signumне равно одному из трёх допустимых значений (-1, 0 и 1) илиsignumравно 0 иmagnitudeсодержит один или несколько ненулевых байтов.
BigInteger
public BigInteger(String val, int radix)
Character.digit. Строка не должна содержать лишних символов (например, пробелов).- Параметры:
-
val- строковое представление BigInteger. -
radix- радикс, используемый при интерпретацииval. - Исключения:
-
NumberFormatException-valне является корректным представлением BigInteger в указанном радиксе илиradixнаходится вне диапазона отCharacter.MIN_RADIXдоCharacter.MAX_RADIXвключительно.
BigInteger
public BigInteger(String val)
Character.digit. Строка не должна содержать лишних символов (например, пробелов).- Параметры:
-
val- десятичное строковое представление BigInteger. - Исключения:
-
NumberFormatException-valне является корректным представлением BigInteger.
BigInteger
public BigInteger(int numBits, Random rnd)
numBits - 1) включительно. Равномерность распределения предполагает, что в rnd предоставляется честный источник случайных битов. Обратите внимание, что этот конструктор всегда создаёт неотрицательный BigInteger.- Параметры:
-
numBits- максимальная bitLength нового BigInteger. -
rnd- источник случайности, используемый для вычисления нового BigInteger. - Исключения:
-
IllegalArgumentException-numBitsотрицательно. - См. также:
BigInteger
public BigInteger(int bitLength, int certainty, Random rnd)
- Примечание API:
- Рекомендуется использовать метод
probablePrimeвместо этого конструктора, если нет веской причины для указания certainty. - Параметры:
-
bitLength- bitLength возвращаемого BigInteger. -
certainty- мера неопределённости, которую вызывающий код готов принять. Вероятность того, что новый BigInteger представляет собой простое число, будет больше (1 - 1/2certainty). Время выполнения этого конструктора пропорционально значению этого параметра. -
rnd- источник случайных битов, используемых для выбора кандидатов, которые будут проверены на простоту. - Исключения:
-
ArithmeticException-bitLength < 2илиbitLengthслишком велики. - См. также:
Подробное описание методов
probablePrime
public static BigInteger probablePrime(int bitLength, Random rnd)
- Parameters:
-
bitLength- длина в битах возвращаемого BigInteger. -
rnd- источник случайных битов, используемых для выбора кандидатов, которые будут проверяться на простоту. - Returns:
- BigInteger с
bitLengthбитами, который, вероятно, является простым - Throws:
-
ArithmeticException-bitLength < 2илиbitLengthслишком велики. - Since:
- 1.4
- See Also:
nextProbablePrime
public BigInteger nextProbablePrime()
BigInteger, которое, вероятно, является простым. Вероятность того, что число, возвращаемое этим методом, является составным, не превышает 2-100. Этот метод никогда не пропустит простое число при поиске: если он возвращает p, то нет простого числа q такого, что this < q < p.- Implementation Note:
- Из-за особенностей базового алгоритма и в зависимости от размера
this, этот метод может потребовать значительного объёма памяти, до исчерпания доступного пространства кучи, или может выполняться длительное время. - Returns:
- первое целое число, большее этого
BigInteger, которое, вероятно, является простым. - Throws:
-
ArithmeticException-this < 0илиthisслишком велики. - Since:
- 1.5
valueOf
public static BigInteger valueOf(long val)
long.- API Note:
- Этот статический фабричный метод предоставляется в приоритете перед (
long) конструктором, потому что он позволяет повторно использовать часто используемые BigInteger. - Parameters:
-
val- значение возвращаемого BigInteger. - Returns:
- BigInteger с заданным значением.
add
public BigInteger add(BigInteger val)
(this + val).- Parameters:
-
val- значение, которое нужно добавить к этому BigInteger. - Returns:
this + val
subtract
public BigInteger subtract(BigInteger val)
(this - val).- Parameters:
-
val- значение, которое нужно вычесть из этого BigInteger. - Returns:
this - val
multiply
public BigInteger multiply(BigInteger val)
(this * val).- Implementation Note:
- Реализация может предложить лучшую алгоритмическую производительность, когда
val == this. - Parameters:
-
val- значение, которое нужно умножить на этот BigInteger. - Returns:
this * val
parallelMultiply
public BigInteger parallelMultiply(BigInteger val)
(this * val). Когда оба this и val велики, обычно в тысячах битов, параллельное умножение может быть использовано. Этот метод возвращает точно такой же математический результат, как multiply(java.math.BigInteger).- Implementation Note:
- Эта реализация может предложить лучшую алгоритмическую производительность, когда
val == this., По сравнению сmultiply(java.math.BigInteger), алгоритм параллельного умножения реализации обычно использует больше ресурсов процессора для более быстрого вычисления результата, и может делать это с небольшим увеличением потребления памяти. - Parameters:
-
val- значение, которое нужно умножить на этот BigInteger. - Returns:
this * val- Since:
- 19
- See Also:
divide
public BigInteger divide(BigInteger val)
(this / val).- Parameters:
-
val- значение, на которое нужно разделить этот BigInteger. - Returns:
this / val- Throws:
-
ArithmeticException- еслиvalравно нулю.
divideAndRemainder
public BigInteger[] divideAndRemainder(BigInteger val)
(this / val), за которым следует (this % val).- Parameters:
-
val- значение, на которое нужно разделить этот BigInteger и вычислить остаток. - Returns:
- массив из двух BigInteger: частное
(this / val)— это начальный элемент, а остаток(this % val)— это конечный элемент. - Throws:
-
ArithmeticException- еслиvalравно нулю.
remainder
public BigInteger remainder(BigInteger val)
(this % val).- Parameters:
-
val- значение, на которое нужно разделить этот BigInteger и вычислить остаток. - Returns:
this % val- Throws:
-
ArithmeticException- еслиvalравно нулю.
pow
public BigInteger pow(int exponent)
(thisexponent). Обратите внимание, что exponent — это целое число, а не BigInteger.- Parameters:
-
exponent- показатель степени, до которого нужно возвести этот BigInteger. - Returns:
thisexponent- Throws:
-
ArithmeticException-exponentотрицательно. (Это привело бы к тому, что операция даст нецелое значение.)
sqrt
public BigInteger sqrt()
n является наибольшим математическим целым числом s, таким что s*s <= n. Она равна значению floor(sqrt(n)), где sqrt(n) обозначает действительный квадратный корень из n, рассматриваемого как действительное. Обратите внимание, что целая квадратная корень будет меньше действительного квадратного корня, если последний не может быть представлен как целое значение.- Returns:
- целая квадратная корень из
this - Throws:
-
ArithmeticException- еслиthisотрицательно. (Квадратный корень из отрицательного целого числаval— это(i * sqrt(-val)), где i — мнимая единица и равноsqrt(-1).) - Since:
- 9
sqrtAndRemainder
public BigInteger[] sqrtAndRemainder()
s из this и её остаток this - s*s соответственно.- Returns:
- массив из двух BigInteger с целой квадратной коренью в смещении 0 и остатком в смещении 1
- Throws:
-
ArithmeticException- еслиthisотрицательно. (Квадратный корень из отрицательного целого числаval— это(i * sqrt(-val)), где i — мнимая единица и равноsqrt(-1).) - Since:
- 9
- See Also:
gcd
public BigInteger gcd(BigInteger val)
abs(this) и abs(val). Возвращает 0, если this == 0 && val == 0.- Parameters:
-
val- значение, с которым нужно вычислить НОД. - Returns:
GCD(abs(this), abs(val))
abs
public BigInteger abs()
- Returns:
abs(this)
negate
public BigInteger negate()
(-this).- Returns:
-this
signum
public int signum()
- Returns:
- -1, 0 или 1, в зависимости от того, является ли значение этого BigInteger отрицательным, нулевым или положительным.
mod
public BigInteger mod(BigInteger m)
(this mod m). Этот метод отличается от remainder тем, что он всегда возвращает неотрицательный BigInteger.- Параметры:
-
m- модуль. - Возвращает:
this mod m- Исключения:
-
ArithmeticException-m≤ 0 - См. также:
modPow
public BigInteger modPow(BigInteger exponent, BigInteger m)
(thisexponent mod m). (В отличие от pow, этот метод допускает отрицательные показатели степени.)- Параметры:
-
exponent- показатель степени. -
m- модуль. - Возвращает:
thisexponent mod m- Исключения:
-
ArithmeticException-m≤ 0 или показатель степени отрицательный, и этот BigInteger не взаимно прост сm. - См. также:
modInverse
public BigInteger modInverse(BigInteger m)
(this-1 mod m).- Параметры:
-
m- модуль. - Возвращает:
-
this-1mod m. - Исключения:
-
ArithmeticException-m≤ 0, или этот BigInteger не имеет мультипликативного обратного по модулю m (то есть, этот BigInteger не взаимно прост с m).
shiftLeft
public BigInteger shiftLeft(int n)
(this << n). Расстояние сдвига, n, может быть отрицательным, в этом случае этот метод выполняет сдвиг вправо. (Вычисляет floor(this * 2n).)- Параметры:
-
n- расстояние сдвига, в битах. - Возвращает:
this << n- См. также:
shiftRight
public BigInteger shiftRight(int n)
(this >> n). Выполняется расширение знака. Расстояние сдвига, n, может быть отрицательным, в этом случае этот метод выполняет сдвиг влево. (Вычисляет floor(this / 2n).)- Параметры:
-
n- расстояние сдвига, в битах. - Возвращает:
this >> n- См. также:
and
public BigInteger and(BigInteger val)
(this & val). (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда this и val оба отрицательны.)- Параметры:
-
val- значение, которое нужно выполнить операцию AND с этим BigInteger. - Возвращает:
this & val
or
public BigInteger or(BigInteger val)
(this | val). (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда this или val отрицательны.)- Параметры:
-
val- значение, которое нужно выполнить операцию OR с этим BigInteger. - Возвращает:
this | val
xor
public BigInteger xor(BigInteger val)
(this ^ val). (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда ровно один из this и val отрицателен.)- Параметры:
-
val- значение, которое нужно выполнить операцию XOR с этим BigInteger. - Возвращает:
this ^ val
not
public BigInteger not()
(~this). (Этот метод возвращает отрицательное значение тогда и только тогда, когда этот BigInteger неотрицателен.)- Возвращает:
~this
andNot
public BigInteger andNot(BigInteger val)
(this & ~val). Этот метод, который эквивалентен and(val.not()), предоставляется для удобства выполнения операций маскирования. (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда this отрицателен, а val положителен.)- Параметры:
-
val- значение, которое нужно инвертировать и выполнить операцию AND с этим BigInteger. - Возвращает:
this & ~val
testBit
public boolean testBit(int n)
true тогда и только тогда, когда заданный бит установлен. (Вычисляет ((this & (1<<n)) != 0).)- Параметры:
-
n- индекс бита для проверки. - Возвращает:
-
trueтогда и только тогда, когда заданный бит установлен. - Исключения:
-
ArithmeticException-nотрицателен.
setBit
public BigInteger setBit(int n)
(this | (1<<n)).)- Параметры:
-
n- индекс бита для установки. - Возвращает:
this | (1<<n)- Исключения:
-
ArithmeticException-nотрицателен.
clearBit
public BigInteger clearBit(int n)
(this & ~(1<<n)).)- Параметры:
-
n- индекс бита для очистки. - Возвращает:
this & ~(1<<n)- Исключения:
-
ArithmeticException-nотрицателен.
flipBit
public BigInteger flipBit(int n)
(this ^ (1<<n)).)- Параметры:
-
n- индекс бита для инвертирования. - Возвращает:
this ^ (1<<n)- Исключения:
-
ArithmeticException-nотрицателен.
getLowestSetBit
public int getLowestSetBit()
(this == 0? -1 : log2(this & -this)).)- Возвращает:
- индекс самого правого единичного бита в этом BigInteger.
bitLength
public int bitLength()
0. (Вычисляет (ceil(log2(this < 0 ? -this : this+1))).)- Возвращает:
- количество битов в минимальном представлении этого BigInteger в дополнительном коде, исключая знак.
bitCount
public int bitCount()
- Возвращает:
- количество битов в представлении этого BigInteger в дополнительном коде, которые отличаются от его знака.
isProbablePrime
public boolean isProbablePrime(int certainty)
true, если этот BigInteger, вероятно, простой, false, если он определенно составной. Если certainty ≤ 0, возвращается true.- Примечание по реализации:
- Из-за характера базового алгоритма проверки на простоту и в зависимости от размера
thisиcertainty, этот метод может потреблять большое количество памяти, вплоть до исчерпания доступного пространства кучи, или может выполняться в течение длительного времени. - Параметры:
-
certainty- мера неопределенности, которую вызывающая сторона готова допустить: если вызов возвращаетtrue, вероятность того, что этот BigInteger является простым, превышает (1 - 1/2certainty). Время выполнения этого метода пропорционально значению этого параметра. - Возвращает:
-
true, если этот BigInteger, вероятно, простой,false, если он определенно составной. - Исключения:
-
ArithmeticException-thisслишком велико.
compareTo
public int compareTo(BigInteger val)
(x.compareTo(y) <op> 0), где <op> — один из шести операторов сравнения.- Определено в:
-
compareToв интерфейсеComparable<BigInteger> - Параметры:
-
val— BigInteger, с которым должен быть сравнен этот BigInteger. - Возвращает:
- -1, 0 или 1, если этот BigInteger численно меньше, равен или больше
val.
equals
public boolean equals(Object x)
min
public BigInteger min(BigInteger val)
val.- Параметры:
-
val— значение, с которым вычисляется минимум. - Возвращает:
- BigInteger, значение которого является меньшим из этого BigInteger и
val. Если они равны, может быть возвращено любое из них.
max
public BigInteger max(BigInteger val)
val.- Параметры:
-
val— значение, с которым вычисляется максимум. - Возвращает:
- BigInteger, значение которого является большим из этого и
val. Если они равны, может быть возвращено любое из них.
hashCode
toString
public String toString(int radix)
Character.MIN_RADIX до Character.MAX_RADIX включительно, он по умолчанию будет равен 10 (как в случае с Integer.toString). Используется отображение цифр в символы, предоставленное Character.forDigit, и, при необходимости, добавляется знак минус. (Это представление совместимо с конструктором (String,
int).)- Параметры:
-
radix— радис строкового представления. - Возвращает:
- строковое представление этого BigInteger в заданном радисе.
- См. также:
toString
public String toString()
Character.forDigit, и, при необходимости, добавляется знак минус. (Это представление совместимо с конструктором (String) и позволяет использовать оператор конкатенации строк Java +.)toByteArray
public byte[] toByteArray()
(ceil((this.bitLength() +
1)/8)). (Это представление совместимо с конструктором (byte[]).)- Возвращает:
- массив байтов, содержащий представление этого BigInteger в дополнительном коде.
- См. также:
intValue
public int intValue()
int. Это преобразование аналогично узкому примитивному преобразованию от long к int, как определено в Спецификации языка Java: если этот BigInteger слишком велик для целого числа типа int, возвращаются только младшие 32 бита. Обратите внимание, что при этом преобразовании может потеряться информация о величине значения BigInteger, а также может быть возвращён результат с противоположным знаком.- Определено в:
-
intValueв классеNumber - Возвращает:
- этот BigInteger, преобразованный в целое число типа
int. - См. Спецификацию языка Java:
- 5.1.3 Узкое примитивное преобразование
- См. также:
longValue
public long longValue()
long. Это преобразование аналогично узкому примитивному преобразованию от long к int, как определено в Спецификации языка Java: если этот BigInteger слишком велик для длинного целого числа типа long, возвращаются только младшие 64 бита. Обратите внимание, что при этом преобразовании может потеряться информация о величине значения BigInteger, а также может быть возвращён результат с противоположным знаком.- Определено в:
-
longValueв классеNumber - Возвращает:
- этот BigInteger, преобразованный в длинное целое число типа
long. - См. Спецификацию языка Java:
- 5.1.3 Узкое примитивное преобразование
- См. также:
floatValue
public float floatValue()
float. Это преобразование подобно узкому примитивному преобразованию от double к float, как определено в Спецификации языка Java: если у этого BigInteger слишком большая величина для представления как числа с плавающей точкой типа float, он будет преобразован в Float.NEGATIVE_INFINITY или Float.POSITIVE_INFINITY соответственно. Обратите внимание, что даже когда возвращаемое значение конечно, при этом преобразовании может потеряться информация о точности значения BigInteger.- Определено в:
-
floatValueв классеNumber - Возвращает:
- этот BigInteger, преобразованный в число с плавающей точкой типа
float. - См. Спецификацию языка Java:
- 5.1.3 Узкое примитивное преобразование
doubleValue
public double doubleValue()
double. Это преобразование подобно узкому примитивному преобразованию от double к float, как определено в Спецификации языка Java: если у этого BigInteger слишком большая величина для представления как числа с плавающей точкой двойной точности типа double, он будет преобразован в Double.NEGATIVE_INFINITY или Double.POSITIVE_INFINITY соответственно. Обратите внимание, что даже когда возвращаемое значение конечно, при этом преобразовании может потеряться информация о точности значения BigInteger.- Определено в:
-
doubleValueв классеNumber - Возвращает:
- этот BigInteger, преобразованный в число с плавающей точкой двойной точности типа
double. - См. Спецификацию языка Java:
- 5.1.3 Узкое примитивное преобразование
longValueExact
public long longValueExact()
BigInteger в long, проверяя наличие потерь информации. Если значение этого BigInteger выходит за пределы диапазона типа long, выбрасывается исключение ArithmeticException.- Возвращает:
- Этот
BigInteger, преобразованный вlong. - Использует:
-
ArithmeticException- если значениеthisне помещается точно вlong. - С:
- 1.8
- См. также:
intValueExact
public int intValueExact()
BigInteger в int, проверяя наличие потерь информации. Если значение этого BigInteger выходит за пределы диапазона типа int, выбрасывается исключение ArithmeticException.- Возвращает:
- Этот
BigInteger, преобразованный вint. - Использует:
-
ArithmeticException- если значениеthisне помещается точно вint. - С:
- 1.8
- См. также:
shortValueExact
public short shortValueExact()
BigInteger в short, проверяя наличие потерь информации. Если значение этого BigInteger выходит за пределы диапазона типа short, выбрасывается исключение ArithmeticException.- Возвращает:
- Этот
BigInteger, преобразованный вshort. - Использует:
-
ArithmeticException- если значениеthisне помещается точно вshort. - С:
- 1.8
- См. также:
byteValueExact
public byte byteValueExact()
BigInteger в byte, проверяя наличие потерь информации. Если значение этого BigInteger выходит за пределы диапазона типа byte, выбрасывается исключение ArithmeticException.- Возвращает:
- Этот
BigInteger, преобразованный вbyte. - Использует:
-
ArithmeticException- если значениеthisне помещается точно вbyte. - С:
- 1.8
- См. также:
© 1993, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/math/BigInteger.html