Java BigInteger

Java Biginteger



Java предлагает специальный класс BigInteger для управления очень большими числами, превышающими 64-битные числа. Размер целочисленных значений, которые может обрабатывать этот класс, просто ограничен выделенной памятью JVM. Класс BigInteger, наследующий Number, реализует интерфейс Comparable. Он дает эквиваленты для каждого примитивного целочисленного оператора Java, а также для каждого метода из модуля java.lang.math. Сохраненное значение объекта BigInteger не может быть изменено из-за неизменности класса BigInteger.

Пример 1:

Следующая программа предоставляет способ создания BigInteger в java и применяет арифметическую операцию к предоставленному значению BigInteger.








Мы импортировали класс BigInteger из математического пакета Java внутри программы. После этого мы объявили объекты BigInteger «bigInt1» и «bigInt2» в методе main() java-класса «BigIntegerExample». Затем мы инициализировали объекты BigInteger большими числовыми значениями в классе BigInteger. Мы создали еще один объект класса BigInteger для выполнения арифметической операции над указанным большим целым числом. Объекты объявлены как «Умножение» для умножения значения BinInteger и «Деление» для деления значения BigInteger.



Затем мы присвоили «bigInt1» вместе с методом «multiple()» BigInteger объекту «multiply», который принимает входные данные «bigInt2». Кроме того, мы вызвали метод Division(), который принимает параметр «bigInt2», который будет разделен на «bigInt1», и выводит результаты после выполнения.



Результаты операции умножения и деления значений BigInteger показаны на следующем выходном изображении. Вот как BigInteger настраивается в java и используется для различных операций.





Пример 2:

Вычисление факториала является хорошей иллюстрацией того, как целое число получает очень большие входные данные. BigInteger также можно использовать для получения факториала для больших целых значений.




Мы создали функцию «factorial» класса BigInteger, где объект «num» типа int передается в качестве аргумента для возврата факториала значения «Num». Внутри функции «factorial» мы объявили объект BigInteger «max_fict», где указано значение BigInteger «2». После этого мы развернули цикл for, который выполняет итерацию, а затем умножает значение «max_fict» на 4, 5 и до n-го значения при вызове методаmulti(). Сам методmulti() называется еще одним методом «valueOf», где предоставляется объект «i» цикла for. Оператор return предоставит больший факториал. Затем мы установили метод main() программы. Мы инициализировали объект «Num» значением и напечатали факториал «Num» из метода factorial().

Факториальное значение числа «40» обеспечивает значение BigInteger следующим образом:

Пример 3:

Функция bitCount() класса BigInteger подсчитывает биты. Метод bitCount() предоставляет количество битов, которые находятся в форме двух дополнений в этом BigInteger и отличаются от бита знака. Этот метод возвращает установленные биты, когда значение BigInteger положительное. С другой стороны, если BigInteger задан с отрицательным значением, этот метод возвращает количество битов сброса.


Мы объявили две переменные, «b1» и «b2» класса типов «BigInteger». Мы также определили еще две переменные, «integer1» и «integer2», примитивного типа int. После объявления мы инициализировали «b1» положительным значением BigInteger, а «b2» — отрицательным значением BigInteger. Затем мы присвоили «integer1» и «integer2» с помощью метода bitCount() переменным BigInteger «b1» и «b2». Подсчитанные биты будут получены из метода bitCount() для указанных значений BigInteger.

Положительное значение BigInteger обеспечивает «2» бита, а отрицательное значение BigInteger выводит значение бита «1».

Пример 4:

Абсолютное значение числовых данных большого размера в BigInteger можно определить с помощью метода abs() класса BigInteger. Метод abs() возвращает абсолютное значение BigInteger.


У нас есть класс BigInteger, из которого мы объявили четыре переменные: «big1», «big2», «big3» и «big4». Переменные «big1» и «big2» задаются с положительными и отрицательными значениями соответственно. После этого мы вызвали метод abs() с «big1» и «big2» в переменных «big3» и «big4». Обратите внимание, что метод abs() не принимает никакого входного значения, а вызывается с переменными «big1» и «big2». Метод abs() получает абсолютное значение для этих переменных BigInteger, и результаты будут напечатаны во время компиляции.

Абсолютное значение положительных 432 и отрицательных значений 432 одинаково, потому что метод abs() всегда возвращает положительное абсолютное значение.

Пример 5:

Сравнение значений BigInteger может быть достигнуто с помощью метода BigInteger compareTo(). BigInteger сравнивается с BigInteger, который вводится как параметр внутри метода compareTo(). Возвращаемое значение метода compareTo() основано на значениях BigInteger. Когда сравнение значения BigInteger равно, возвращается ноль. В противном случае возвращаются «1» и «-1» при условии, что значение BigInteger больше или меньше значения BigInteger, переданного в качестве аргумента.


У нас есть объекты «MyBigInt1» и «MyBigtInt2», объявление класса «BigInteger». Затем эти объекты указываются с теми же значениями BigInteger. После этого мы создали еще один объект, «comparevalue», где объект «MyBigInt1» вызывается с помощью метода compareTo(), а объект «MyBigInt2» передается в качестве аргумента для сравнения с объектом «MyBigInt2». Далее у нас есть оператор if-else, в котором мы проверяем, равны ли результаты метода compareTo() значению «0» или нет.

Поскольку оба объекта BigInteger имеют одинаковые значения, результаты compareTo() возвращают ноль, как показано на изображении ниже.

Пример 6:

Метод BigInteger flipBit(index) также можно использовать для переключения в определенном месте бита в BigInteger. Этот метод оценивает (bigInt ^ (1<


Мы определили две переменные BigInteger: «B_val1» и «B_val2». Переменная «B_val1» инициализируется классом BigInteger, где указывается значение. Затем мы установили переменную «B_val2» с помощью метода flipBit(), где операция flipBit выполняется над переменной «B_value» со значением индекса «2».

Позиция индекса значения BigInteger «9» переворачивается с индексом «2», что выводит значение «13» на выходе.

Вывод

Класс BigInteger очень удобен в использовании и часто используется в соревновательном программировании благодаря обширной библиотеке методов. BigInteger используется для вычисления очень длинных чисел, которые выходят за пределы возможностей всех доступных в настоящее время примитивных типов данных. Он предоставляет различные методы для модульных арифметических операций. Сначала мы создали BigInteger, а затем рассмотрели несколько его методов.