Описание тега bigint
Некоторые современные языки программирования имеют встроенную поддержку больших чисел, а другие имеют библиотеки для целочисленных вычислений произвольной точности и чисел с плавающей запятой. Вместо того, чтобы хранить значения в виде фиксированного числа двоичных битов, связанных с размером регистра процессора, эти реализации обычно используют массивы цифр переменной длины.
lisp, smalltalk, rexx и haskell поддерживают целые числа произвольной точности (также известные как целые числа бесконечной точности или bignums). Другие языки, которые не поддерживают эту концепцию в качестве конструкции верхнего уровня, могут иметь библиотеки для представления очень больших чисел с использованием массивов меньших переменных, таких как класс java и C# biginteger или пакет perl "bigint".
Они используют столько памяти компьютера, сколько необходимо для хранения чисел; однако компьютер имеет ограниченный объем памяти, поэтому они также могут представлять только конечное подмножество математических целых чисел. Эти схемы поддерживают очень большие числа, например, один килобайт памяти может использоваться для хранения чисел длиной до 2466 десятичных цифр.
заявка
Распространенным приложением является криптография с открытым ключом (например, в каждом современном веб-браузере), в алгоритмах которого обычно используются арифметические операции с целыми числами, состоящими из сотен цифр. Другой - в ситуациях, когда искусственные ограничения и переполнения неуместны. Это также полезно для проверки результатов вычислений с фиксированной точностью и для определения оптимального значения коэффициентов, необходимых в формулах, например, √⅓, которое появляется при интегрировании по Гауссу.
Большие целые числа также могут использоваться для вычисления фундаментальных математических констант, таких как от π до миллионов или более в целом, для исследования точного поведения таких функций, как дзета-функция Римана, где некоторые вопросы трудно исследовать с помощью аналитических методов. Другой пример - рендеринг фрактальных изображений с очень большим увеличением.
Арифметика с произвольной точностью также может использоваться, чтобы избежать переполнения, что является неотъемлемым ограничением арифметики с фиксированной точностью. Некоторые процессоры вместо этого могут справляться с переполнением путем насыщения, что означает, что, если результат будет непредставимым, он заменяется ближайшим представимым значением.