Тип данных в C ++ или Java для хранения 20-значного целого числа

Есть ли какой-либо тип данных, доступный в Java или C ++, который может содержать целочисленные значения 20 цифр или более? Тип данных long long может содержать до 18 цифр.

12

Решение

Специфичный для Java:

Ты ищешь BigInteger

Неизменные целые числа произвольной точности. Все операции ведут себя так, как если бы BigIntegers были представлены в виде двоичного дополнения (как примитивные целочисленные типы Java)

Например:

  BigInteger bint = new BigInteger("1234567856656569");
BigInteger bint2 = new BigInteger("1234556567856656569");
System.out.println(bint2.intValue()-bint.intValue()); //397189120

А также BigDecimal

12

Другие решения

Посмотрите на Java BigInteger.

4

В java ты можешь использовать:

  • BigInteger: для чисел без десятичных значений
  • BigDecimal: для чисел с десятичными значениями
3

Проверять, выписываться Большой целочисленный пример на C ++. Pdf Оуэн Астрахан. Я нашел этот файл чрезвычайно полезным с подробным введением и реализацией кода. Он не использует стороннюю библиотеку. Я использовал это для обработки огромных чисел (если у вас достаточно памяти для хранения vector<char>без проблем.

Я ответил на аналогичный вопрос Вот, где я дал более подробное представление.

3

Для C ++ вы можете проверить Мэтта Маккатчена Big Integer класс, для Java просто используйте BigInteger

3

BigInteger класс в Java может содержать такие числа.

Кроме того, вы можете реализовать свой собственный класс, основанный на двух длинных длинных числах.

2

Для C ++, см. Boost’s отлично многоточная библиотека.

1

Используйте тип данных BigInt с его неявными операциями

Вот пример сложения

      BigInteger big1 = new BigInteger("1234567856656567242177779");
BigInteger big2 = new BigInteger("12345565678566567131275737372777569");
BigInteger bigSum = big1.add(big2);
System.out.println(bigSum );
1
По вопросам рекламы [email protected]