какой тип данных соответствует 10 ^ 16 в C ++?

Моя программа на C ++ может создавать значение до 10 ^ 16 во время выполнения, я пытался использовать для него «long long int», но это не сработало. Какой тип данных соответствует 10 ^ 16?

Спасибо;

0

Решение

Минимальный гарантированный максимум long long int является 2^63 - 1что примерно 10^19, Это должно быть хорошо. Чтобы быть уверенным, используйте std::int_least64_t введите от <cstdint>, Гарантируется, что он имеет не менее 64 бит.

6

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

меньше чем 64 бита так .. долго долго должно быть хорошо ..

1

Пытаться int64_t, Это должно быть достаточно долго. Но обязательно введите целочисленный литерал:

int64_t n = 10000000000000000;

Если вы говорите 1E16, это double литерал, и преобразование в целое число может привести к неожиданным результатам.

1

Без знака long long Int работает до 10 ^ 18!

-2