Класс 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(исключая). - С:
- 1.1
- См. также:
-
BigDecimal, Сериализованная форма
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static BigInteger | ONE | Константа BigInteger равна единице. |
static BigInteger | TEN | Константа BigInteger равна десяти. |
static BigInteger | TWO | Константа BigInteger равна двум. |
static 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 до (2 |
BigInteger(String val) | Преобразует строковое представление BigInteger в десятичной форме в BigInteger. |
BigInteger(String val,
int radix) | Преобразует строковое представление BigInteger в указанной системе счисления в BigInteger. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
BigInteger | abs() | Возвращает BigInteger, значение которого равно абсолютному значению этого BigInteger. |
BigInteger | add(BigInteger val) | Возвращает BigInteger, значение которого равно |
BigInteger | and(BigInteger val) | Возвращает BigInteger, значение которого равно |
BigInteger | andNot(BigInteger val) | Возвращает BigInteger, значение которого равно |
int | bitCount() | Возвращает количество битов в представлении этого BigInteger в дополнительном коде, которые отличаются от его знакового бита. |
int | bitLength() | Возвращает количество битов в минимальном представлении этого BigInteger в дополнительном коде, исключая знаковый бит. |
byte | byteValueExact() | Преобразует этот |
BigInteger | clearBit(int n) | Возвращает BigInteger, значение которого эквивалентно этому BigInteger со сброшенным указанным битом. |
int | compareTo(BigInteger val) | Сравнивает этот BigInteger со значением указанного BigInteger. |
BigInteger | divide(BigInteger val) | Возвращает BigInteger, значение которого равно |
BigInteger[] | divideAndRemainder(BigInteger val) | Возвращает массив из двух BigInteger, содержащий |
double | doubleValue() | Преобразует этот BigInteger в |
boolean | equals(Object x) | Сравнивает этот BigInteger с указанным объектом на равенство. |
BigInteger | flipBit(int n) | Возвращает BigInteger, значение которого эквивалентно этому BigInteger с переключенным указанным битом. |
float | floatValue() | Преобразует этот BigInteger в |
BigInteger | gcd(BigInteger val) | Возвращает BigInteger, значение которого равно наибольшему общему делителю |
int | getLowestSetBit() | Возвращает индекс самого правого (самого младшего) единичного бита в этом BigInteger (количество нулевых битов справа от самого правого единичного бита). |
int | hashCode() | Возвращает хэш-код для этого BigInteger. |
int | intValue() | Преобразует этот BigInteger в |
int | intValueExact() | Преобразует этот |
boolean | isProbablePrime(int certainty) | Возвращает |
long | longValue() | Преобразует этот BigInteger в |
long | longValueExact() | Преобразует этот |
BigInteger | max(BigInteger val) | Возвращает максимальное значение этого BigInteger и |
BigInteger | min(BigInteger val) | Возвращает минимальное значение этого BigInteger и |
BigInteger | mod(BigInteger m) | Возвращает BigInteger, значение которого равно |
BigInteger | modInverse(BigInteger m) | Возвращает BigInteger, значение которого равно |
BigInteger | modPow(BigInteger exponent,
BigInteger m) | Возвращает BigInteger, значение которого равно |
BigInteger | multiply(BigInteger val) | Возвращает BigInteger, значение которого равно |
BigInteger | negate() | Возвращает BigInteger, значение которого равно |
BigInteger | nextProbablePrime() | Возвращает первое целое число, большее этого |
BigInteger | not() | Возвращает BigInteger, значение которого равно |
BigInteger | or(BigInteger val) | Возвращает BigInteger, значение которого равно |
BigInteger | pow(int exponent) | Возвращает BigInteger, значение которого равно |
static BigInteger | probablePrime(int bitLength,
Random rnd) | Возвращает положительный BigInteger, который, вероятно, является простым числом, с указанной разрядностью. |
BigInteger | remainder(BigInteger val) | Возвращает BigInteger, значение которого равно |
BigInteger | setBit(int n) | Возвращает BigInteger, значение которого эквивалентно этому BigInteger с установленным указанным битом. |
BigInteger | shiftLeft(int n) | Возвращает BigInteger, значение которого равно |
BigInteger | shiftRight(int n) | Возвращает BigInteger, значение которого равно |
short | shortValueExact() | Преобразует этот |
int | signum() | Возвращает функцию signum этого BigInteger. |
BigInteger | sqrt() | Возвращает целую квадратную часть этого BigInteger. |
BigInteger[] | sqrtAndRemainder() | Возвращает массив из двух BigInteger, содержащий целую квадратную часть |
BigInteger | subtract(BigInteger val) | Возвращает BigInteger, значение которого равно |
boolean | testBit(int n) | Возвращает |
byte[] | toByteArray() | Возвращает массив байтов, содержащий представление этого BigInteger в дополнительном коде. |
String | toString() | Возвращает строковое представление этого BigInteger в десятичной системе счисления. |
String | toString(int radix) | Возвращает строковое представление этого BigInteger в заданной системе счисления. |
static BigInteger | valueOf(long val) | Возвращает BigInteger, значение которого равно значению указанного |
BigInteger | xor(BigInteger val) | Возвращает BigInteger, значение которого равно |
Методы, объявленные в классе java.lang.Number
byteValue, shortValue Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Поля
ZERO
public static final BigInteger ZERO
Константа BigInteger, равная нулю.
- Since:
- 1.2
ONE
public static final BigInteger ONE
Константа BigInteger, равная единице.
- Since:
- 1.2
TWO
public static final BigInteger TWO
Константа BigInteger, равная двум.
- Since:
- 9
TEN
public static final BigInteger TEN
Константа BigInteger, равная десяти.
- Since:
- 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- если длина массива байтов равна нулю. -
IndexOutOfBoundsException- если заданные смещение и длина массива приводят к отрицательному индексу или индексу, равному или большему или равному длине массива. - Since:
- 9
BigInteger
public BigInteger(byte[] val)
Преобразует массив байтов, содержащий двоичное представление BigInteger в дополнительном коде, в объект BigInteger. Входной массив предполагается в порядке big-endian: самый значимый байт находится в нулевом элементе. Массив val предполагается неизменным на протяжении вызова конструктора.
- Параметры:
-
val- двоичное представление BigInteger в дополнительном коде в порядке big-endian. - Исключения:
-
NumberFormatException- если длина массива байтов равна нулю.
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- если заданные смещение и длина массива приводят к отрицательному индексу или индексу, равному или большему или равному длине массива. - Since:
- 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, включительно. - См. также:
Character.digit(char, int)
BigInteger
public BigInteger(String val)
Преобразует десятичное строковое представление BigInteger в объект BigInteger. Строковое представление состоит из необязательного знака минус, за которым следуют одна или несколько десятичных цифр. Сопоставление символа с цифрой задаётся Character.digit. Строка не должна содержать лишних символов (например, пробелов).
- Параметры:
-
val- десятичное строковое представление BigInteger. - Исключения:
-
NumberFormatException- еслиvalне является допустимым представлением BigInteger. - См. также:
Character.digit(char, int)
BigInteger
public BigInteger(int numBits,
Random rnd) Создаёт случайно сгенерированный объект BigInteger, равномерно распределённый в диапазоне от 0 до (2numBits - 1), включительно. Равномерность распределения предполагает, что в rnd используется справедливый источник случайных бит. Обратите внимание, что этот конструктор всегда создаёт неотрицательный BigInteger.
- Параметры:
-
numBits- максимальная bitLength нового BigInteger. -
rnd- источник случайности, используемый для вычисления нового BigInteger. - Исключения:
-
IllegalArgumentException- еслиnumBitsотрицательное. - См. также:
bitLength()
BigInteger
public BigInteger(int bitLength,
int certainty,
Random rnd) Создаёт случайно сгенерированный положительный BigInteger, который, вероятно, является простым числом, с указанной bitLength.
- Примечание API:
- Рекомендуется использовать метод
probablePrimeвместо этого конструктора, если нет необходимости явно указать степень уверенности. - Параметры:
-
bitLength- bitLength возвращаемого BigInteger. -
certainty- мера неопределённости, которую вызывающий код готов допустить. Вероятность того, что новый BigInteger представляет простое число, превысит (1 - 1/2certainty). Время выполнения этого конструктора пропорционально значению этого параметра. -
rnd- источник случайных бит, используемый для выбора кандидатов, которые будут проверены на простоту. - Исключения:
-
ArithmeticException- еслиbitLength < 2илиbitLengthслишком велики. - См. также:
bitLength()
Методы
probablePrime
public static BigInteger probablePrime(int bitLength,
Random rnd) Возвращает положительное значение BigInteger, которое, вероятно, является простым числом, с указанной bitLength. Вероятность того, что BigInteger, возвращаемое этим методом, является составным, не превышает 2-100.
- Параметры:
-
bitLength- bitLength возвращаемого BigInteger. -
rnd- источник случайных битов, используемых для выбора кандидатов для проверки на простоту. - Возвращает:
- BigInteger из
bitLengthбит, который, вероятно, является простым числом - Исключения:
-
ArithmeticException-bitLength < 2илиbitLengthслишком велико. - С версии:
- 1.4
- См. также:
bitLength()
nextProbablePrime
public BigInteger nextProbablePrime()
Возвращает первое целое число, большее, чем это BigInteger, которое, вероятно, является простым числом. Вероятность того, что число, возвращаемое этим методом, является составным, не превышает 2-100. Этот метод никогда не пропускает простое число при поиске: если он возвращает p, то нет простого числа q, такого что this < q < p.
- Возвращает:
- первое целое число, большее, чем это
BigInteger, которое, вероятно, является простым числом. - Исключения:
-
ArithmeticException-this < 0илиthisслишком велико. - С версии:
- 1.5
valueOf
public static BigInteger valueOf(long val)
Возвращает BigInteger, значение которого равно значению указанного long.
- API Примечание:
- Этот статический фабричный метод предоставляется предпочтительнее (
long) конструктора, поскольку он позволяет повторно использовать часто используемые BigIntegers. - Параметры:
-
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
divide
public BigInteger divide(BigInteger val)
Возвращает BigInteger, значение которого равно (this / val).
- Параметры:
-
val- значение, на которое нужно разделить этот BigInteger. - Возвращает:
this / val- Исключения:
-
ArithmeticException- еслиvalравно нулю.
divideAndRemainder
public BigInteger[] divideAndRemainder(BigInteger val)
Возвращает массив из двух BigIntegers, содержащих (this / val) за которым следует (this % val).
- Параметры:
-
val- значение, на которое нужно разделить этот BigInteger, и вычислить остаток. - Возвращает:
- массив из двух BigIntegers: частное
(this / val)является начальным элементом, а остаток(this % val)- конечным элементом. - Исключения:
-
ArithmeticException- еслиvalравно нулю.
remainder
public BigInteger remainder(BigInteger val)
Возвращает BigInteger, значение которого равно (this % val).
- Параметры:
-
val- значение, на которое нужно разделить этот BigInteger, и вычислить остаток. - Возвращает:
this % val- Исключения:
-
ArithmeticException- еслиvalравно нулю.
pow
public BigInteger pow(int exponent)
Возвращает BigInteger, значение которого равно (thisexponent). Обратите внимание, что exponent является целым числом, а не BigInteger.
- Параметры:
-
exponent- показатель степени, в который нужно возвести этот BigInteger. - Возвращает:
thisexponent- Исключения:
-
ArithmeticException-exponentотрицательно. (Это приведет к тому, что операция даст нецелое значение.)
sqrt
public BigInteger sqrt()
Возвращает целое число, являющееся квадратным корнем этого BigInteger. Целый квадратный корень соответствующего математического целого числа n - это наибольшее математическое целое число s, такое что s*s <= n. Он равен значению floor(sqrt(n)), где sqrt(n) обозначает действительный квадратный корень из n, рассматриваемого как действительное число. Обратите внимание, что целое число, являющееся квадратным корнем, будет меньше действительного квадратного корня, если последнее не представимо как целое значение.
- Возвращает:
- целое число, являющееся квадратным корнем из
this - Исключения:
-
ArithmeticException- еслиthisотрицательно. (Квадратный корень из отрицательного целого числаvalравен(i * sqrt(-val)), где i - мнимая единица и равноsqrt(-1).) - С версии:
- 9
sqrtAndRemainder
public BigInteger[] sqrtAndRemainder()
Возвращает массив из двух 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-1mod m. - Исключения:
-
ArithmeticException-m≤ 0, или этот BigInteger не имеет мультипликативного обратного mod m (то есть, этот BigInteger не является взаимно простым к m).
shiftLeft
public BigInteger shiftLeft(int n)
Возвращает BigInteger, значение которого равно (this << n). Расстояние сдвига, n, может быть отрицательным, в этом случае этот метод выполняет сдвиг вправо. (Вычисляет floor(this * 2n).)
- Параметры:
-
n- расстояние сдвига, в битах. - Возвращает:
this << n- См. также:
shiftRight(int)
shiftRight
public BigInteger shiftRight(int n)
Возвращает BigInteger, значение которого равно (this >> n). Выполняется расширение знака. Расстояние сдвига, n, может быть отрицательным, в этом случае этот метод выполняет сдвиг влево. (Вычисляет floor(this / 2n).)
- Параметры:
-
n- расстояние сдвига, в битах. - Возвращает:
this >> n- См. также:
shiftLeft(int)
and
public BigInteger and(BigInteger val)
Возвращает BigInteger, значение которого равно (this & val). (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда this и val оба отрицательны.)
- Параметры:
-
val- значение, которое нужно выполнить операцию И с этим BigInteger. - Возвращает:
this & val
or
public BigInteger or(BigInteger val)
Возвращает BigInteger, значение которого равно (this | val). (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда this или val отрицательны.)
- Параметры:
-
val- значение, которое нужно выполнить операцию ИЛИ с этим BigInteger. - Возвращает:
this | val
xor
public BigInteger xor(BigInteger val)
Возвращает BigInteger, значение которого равно (this ^ val). (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда ровно один из этого и val отрицателен.)
- Параметры:
-
val- значение, которое необходимо выполнить XOR с этим BigInteger. - Возвращает:
this ^ val
not
public BigInteger not()
Возвращает BigInteger, значение которого равно (~this). (Этот метод возвращает отрицательное значение тогда и только тогда, когда этот BigInteger неотрицателен.)
- Возвращает:
~this
andNot
public BigInteger andNot(BigInteger val)
Возвращает BigInteger, значение которого равно (this & ~val). Этот метод, эквивалентный and(val.not()), предоставляется для удобства выполнения операций маскирования. (Этот метод возвращает отрицательный BigInteger тогда и только тогда, когда this отрицателен, а val положителен.)
- Параметры:
-
val- значение, которое необходимо дополнить и выполнить AND с этим BigInteger. - Возвращает:
this & ~val
testBit
public boolean testBit(int n)
Возвращает true тогда и только тогда, когда указанный бит установлен. (Вычисляет ((this & (1<<n)) != 0).)
- Параметры:
-
n- индекс проверяемого бита. - Возвращает:
-
trueтогда и только тогда, когда указанный бит установлен. - Исключения:
-
ArithmeticException-nотрицателен.
setBit
public BigInteger setBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с установленным указанным битом. (Вычисляет (this | (1<<n)).)
- Параметры:
-
n- индекс устанавливаемого бита. - Возвращает:
this | (1<<n)- Исключения:
-
ArithmeticException-nотрицателен.
clearBit
public BigInteger clearBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с очищенным указанным битом. (Вычисляет (this & ~(1<<n)).)
- Параметры:
-
n- индекс очищаемого бита. - Возвращает:
this & ~(1<<n)- Исключения:
-
ArithmeticException-nотрицателен.
flipBit
public BigInteger flipBit(int n)
Возвращает BigInteger, значение которого эквивалентно этому BigInteger с инвертированным указанным битом. (Вычисляет (this ^ (1<<n)).)
- Параметры:
-
n- индекс инвертируемого бита. - Возвращает:
this ^ (1<<n)- Исключения:
-
ArithmeticException-nотрицателен.
getLowestSetBit
public int getLowestSetBit()
Возвращает индекс самого правого (младшего) единичного бита в этом BigInteger (количество нулевых битов справа от самого правого единичного бита). Возвращает -1, если этот BigInteger не содержит единичных битов. (Вычисляет (this == 0? -1 : log2(this & -this)).)
- Возвращает:
- индекс самого правого единичного бита в этом BigInteger.
bitLength
public int bitLength()
Возвращает количество битов в минимальном представлении этого BigInteger в дополнительном коде, исключая знак. Для положительных BigIntegers это эквивалентно количеству битов в обычном двоичном представлении. Для нуля этот метод возвращает 0. (Вычисляет (ceil(log2(this < 0 ? -this : this+1))).)
- Возвращает:
- количество битов в минимальном представлении этого BigInteger в дополнительном коде, исключая знак.
bitCount
public int bitCount()
Возвращает количество битов в представлении этого BigInteger в дополнительном коде, которые отличаются от его знака. Этот метод полезен при реализации множеств в стиле битовых векторов поверх BigIntegers.
- Возвращает:
- количество битов в представлении этого BigInteger в дополнительном коде, которые отличаются от его знака.
isProbablePrime
public boolean isProbablePrime(int certainty)
Возвращает true, если этот BigInteger, вероятно, простой, false, если он точно составной. Если certainty ≤ 0, возвращается true.
- Параметры:
-
certainty- мера неопределенности, которую вызывающий абонент готов допустить: если вызов возвращаетtrue, вероятность того, что этот BigInteger является простым, превышает (1 - 1/2certainty). Время выполнения этого метода пропорционально значению этого параметра. - Возвращает:
-
trueесли этот BigInteger, вероятно, простой,falseесли он точно составной.
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 с указанным Object на равенство.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
x- Object, с которым необходимо сравнить этот BigInteger. - Возвращает:
-
trueтогда и только тогда, когда указанный Object является 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.
- Переопределяет:
-
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).)
- Параметры:
-
radix- система счисления строкового представления. - Возвращает:
- строковое представление этого BigInteger в заданной системе счисления.
- См. также:
-
Integer.toString(int, int),Character.forDigit(int, int),BigInteger(java.lang.String, int)
toString
public String toString()
Возвращает десятичное строковое представление этого BigInteger. Используется отображение цифр в символы, предоставляемое Character.forDigit, и при необходимости добавляется знак минус. (Это представление совместимо с конструктором (String) и позволяет для конкатенации строк с помощью оператора + Java.)
- Переопределяет:
-
toStringв классеObject - Возвращает:
- десятичное строковое представление этого BigInteger.
- См. также:
-
Character.forDigit(int, int),BigInteger(java.lang.String)
toByteArray
public byte[] toByteArray()
Возвращает массив байтов, содержащий представление этого BigInteger в дополнительном коде. Массив байтов будет в порядке байтов 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. - См. также:
intValueExact()
longValue
public long longValue()
Преобразует этот объект BigInteger в long. Это преобразование аналогично преобразованию примитивного типа сужения от long к int, как определено в Спецификации языка Java™: если этот объект BigInteger слишком большой, чтобы поместиться в long, возвращаются только младшие 64 бита. Обратите внимание, что при этом преобразовании может потеряться информация о величине значения BigInteger, а также может быть возвращено значение с противоположным знаком.
- Определено в:
-
longValueв классеNumber - Возвращает:
- этот объект BigInteger, преобразованный в
long. - См. также:
longValueExact()
floatValue
public float floatValue()
Преобразует этот объект BigInteger в float. Это преобразование аналогично преобразованию примитивного типа сужения от double к float, как определено в Спецификации языка Java™: если у этого объекта BigInteger слишком большая величина, чтобы быть представленным как float, он будет преобразован в Float.NEGATIVE_INFINITY или Float.POSITIVE_INFINITY, соответственно. Обратите внимание, что даже когда возвращаемое значение конечно, при этом преобразовании может потеряться информация о точности значения BigInteger.
- Определено в:
-
floatValueв классеNumber - Возвращает:
- этот объект BigInteger, преобразованный в
float.
doubleValue
public double doubleValue()
Преобразует этот объект BigInteger в double. Это преобразование аналогично преобразованию примитивного типа сужения от double к float, как определено в Спецификации языка Java™: если у этого объекта BigInteger слишком большая величина, чтобы быть представленным как double, он будет преобразован в Double.NEGATIVE_INFINITY или Double.POSITIVE_INFINITY, соответственно. Обратите внимание, что даже когда возвращаемое значение конечно, при этом преобразовании может потеряться информация о точности значения BigInteger.
- Определено в:
-
doubleValueв классеNumber - Возвращает:
- этот объект BigInteger, преобразованный в
double.
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, 2020, 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/11/docs/api/java.base/java/math/BigInteger.html