Какой тип переменной для чрезвычайно больших целых чисел? - программирование
Подтвердить что ты не робот

Какой тип переменной для чрезвычайно больших целых чисел?

Я пробовал использовать

long long int

Но он не будет работать для чисел, таких как 3141592653589793238462643383279502884197169399375, мне нужно это до 10 ^ 80. Есть идеи? Дай мне знать. Большое спасибо.

4b9b3361

Ответ 1

Вы не можете использовать для этого встроенный целочисленный тип. Вам нужна "множественная точность целочисленного", ака-бинарная библиотека. Для С++ я сначала попробую Boost.Multiprecision, но имейте в виду, что Boost может быть значительно больше проблем, чем это стоит, особенно если модуль, который вы используете, имеет совместно используемой библиотеки (aka DLL). Другой очевидный выбор - GNU MP. Он имеет только интерфейс C, но он хорошо поддерживается, надежен, быстр и очень популярен (на самом деле, похоже, что Boost.MP является "просто" оболочкой С++ для него!)

ПРЕДУПРЕЖДЕНИЕ: вам может понадобиться библиотека bignum, потому что вы пытаетесь реализовать один из криптографических примитивов, который использует огромные числа, например RSA. Не делайте этого. Общие библиотеки бигмуна небезопасны для криптографического использования, и даже если бы они были, все равно были бы десятки тонких ошибок, которые вы могли бы сделать, что может испортить вашу безопасность. Вместо этого используйте проверенную библиотеку криптографии; для С++ я рекомендую Botan.

Ответ 2

На codechef.com есть учебник о том, как хранить очень большое количество. Перейдите по следующей ссылке, чтобы прочитать полную информацию. Они объяснили это очень хорошо. Вычисление факториалов огромных чисел в cc