Класс BigInteger
Класс BigInteger из пакета java.math предназначен
для работы с целыми числами произвольной точности. В отличие
от примитивных типов int и long, которые имеют
фиксированный диапазон значений, BigInteger позволяет
хранить и обрабатывать числа любой длины, ограниченной только
объемом памяти. Объекты этого класса неизменяемы: любая
арифметическая операция возвращает новый объект, а исходный
остается без изменений. Для создания числа можно использовать
конструкторы, принимающие строку или массив байтов, а также
статические методы, такие как valueOf.
Синтаксис
import java.math.BigInteger;
BigInteger num = new BigInteger("строка");
BigInteger num = BigInteger.valueOf(число);
Пример
Давайте создадим два числа BigInteger из строк и сложим их:
import java.math.BigInteger;
public class Main
{
public static void main(String[] args)
{
BigInteger a = new BigInteger("12345");
BigInteger b = new BigInteger("67890");
BigInteger res = a.add(b);
System.out.println(res);
}
}
Результат выполнения кода:
80235
Пример
Давайте создадим большое число, превышающее диапазон long:
import java.math.BigInteger;
public class Main
{
public static void main(String[] args)
{
BigInteger num = new BigInteger("123456789012345678901234567890");
System.out.println(num);
}
}
Результат выполнения кода:
123456789012345678901234567890
Пример
Давайте умножим два числа, полученных через valueOf:
import java.math.BigInteger;
public class Main
{
public static void main(String[] args)
{
BigInteger a = BigInteger.valueOf(12345);
BigInteger b = BigInteger.valueOf(67890);
BigInteger res = a.multiply(b);
System.out.println(res);
}
}
Результат выполнения кода:
838102050