Создание числового типа данных, превышающего его нормальный размер - PullRequest
1 голос
/ 19 декабря 2010

Существует программа-калькулятор, с которой я давно сталкивался в Windows.Я не мог вспомнить его название, но одна впечатляющая вещь в нем - то, что он может вычислять числа размером до 512 байт.Например, запрашивая значение pi, он может выдавать числа с сотнями цифр.(но, конечно, для вывода требуется несколько секунд) Обычно, int будет 4 байта, удвоено 8 байтов и т. д.

Теперь, как мы можем это сделать?Как мы можем выделить переменную для чисел, которые могут превышать нормальный диапазон?(как, например, int 4 байта, long 8 байтов). И как предотвратить переполнение и потерю в этом случае?Предположим, что это C ++.

Ответы [ 2 ]

3 голосов
/ 19 декабря 2010

Это можно сделать с помощью библиотеки GNU MP или одного из ее конкурентов.

Вы также можете бросить свои собственные, если вы хорошо разбираетесь в математике.

3 голосов
/ 19 декабря 2010

Google вокруг для условий арифметика произвольной точности и арифметика множественной точности . Число библиотек плюс число приложений, которые реализуют такую ​​арифметику, вероятно, превышает 2 ^ 32.

...