Есть ли какой-либо тип данных, доступный в Java или C ++, который может содержать целочисленные значения 20 цифр или более? Тип данных long long может содержать до 18 цифр.
Специфичный для Java:
Ты ищешь BigInteger
Неизменные целые числа произвольной точности. Все операции ведут себя так, как если бы BigIntegers были представлены в виде двоичного дополнения (как примитивные целочисленные типы Java)
Например:
BigInteger bint = new BigInteger("1234567856656569");
BigInteger bint2 = new BigInteger("1234556567856656569");
System.out.println(bint2.intValue()-bint.intValue()); //397189120
А также BigDecimal
Посмотрите на Java BigInteger.
В java
ты можешь использовать:
BigInteger
: для чисел без десятичных значенийBigDecimal
: для чисел с десятичными значениямиПроверять, выписываться Большой целочисленный пример на C ++. Pdf Оуэн Астрахан. Я нашел этот файл чрезвычайно полезным с подробным введением и реализацией кода. Он не использует стороннюю библиотеку. Я использовал это для обработки огромных чисел (если у вас достаточно памяти для хранения vector<char>
без проблем.
Я ответил на аналогичный вопрос Вот, где я дал более подробное представление.
Для C ++ вы можете проверить Мэтта Маккатчена Big Integer класс, для Java просто используйте BigInteger
BigInteger
класс в Java может содержать такие числа.
Кроме того, вы можете реализовать свой собственный класс, основанный на двух длинных длинных числах.
Для C ++, см. Boost’s отлично многоточная библиотека.
Используйте тип данных BigInt с его неявными операциями
Вот пример сложения
BigInteger big1 = new BigInteger("1234567856656567242177779");
BigInteger big2 = new BigInteger("12345565678566567131275737372777569");
BigInteger bigSum = big1.add(big2);
System.out.println(bigSum );