Класс 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 до (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, равная нулю.

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-1 mod 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

Spec-Zone .ru
спецификации, руководства, описания, API