я пытаюсь выяснить, как справиться с переполнением для сложения, вычитания, умножения и деления для двух очень больших целых чисел. Любая обратная связь / вклад будет оценен. Кто-нибудь знает какие-либо алгоритмы для этого и / или источники, которые я мог бы проконсультироваться?
(Я провел исследование перед публикацией и просто не уверен, как справиться с этим и)
РЕДАКТИРОВАТЬ: для двух очень больших целых чисел
Это похоже на вопросы
Проверьте состояние переполнения в арифметической операции
а также
Как обнаружить целочисленное переполнение?
Поскольку целое число, деленное на целое, редко является целым числом, это вообще невозможно.
Тем не менее, это то, что я думаю, вы хотите:
http://gmplib.org/
Он обрабатывает целые и рациональные числа произвольного размера.
Если вы хотите избежать возникновения условия переполнения, одним из способов будет использование связанного списка для хранения частей числа, а затем выполнение вычислений для отдельных частей и добавление дополнительных узлов в список для обработки избыточных цифр при необходимости.
пример
1234567890 можно сохранить как -> 12,34,56,78,90
Для умножения каждая единица будет умножена и перенесена в следующую единицу -> 1,23,45,67,89,0
Имейте в виду, однако, что его легче разделить на однозначные единицы, например, 1,2,3,4,5, а не 1,23,45, поскольку это упрощает операции.
РЕДАКТИРОВАТЬ :: Слово «дескриптор» не то слово, которое вы должны использовать