В качестве личного проекта я работаю над реализацией типа чисел произвольной точности для моего любимого проекта.
Я уже знаю обо всех популярных, проверенных и надежных библиотеках, которые делают это. Я хочу работать над решением в рамках образовательного проекта по самосовершенствованию.
Я изучаю эту область и пытаюсь выяснить, есть ли способ приблизительно предсказать, вызовет ли операция переполнение, до того, как я действительно проведу вычисления. Я не так беспокоюсь о ложных срабатываниях либо.
Я хочу иметь возможность использовать наименьшее пространство, подходящее для расчета. Если расчет останется в своих родных границах, я оставлю его там.
Например: Multiplying two 64 bit Integers if each are large enough will cause an overflow.
Я хочу обнаружить это и преобразовать числа в мой числовой тип только в том случае, если разрешение может превышать 64 бита. В этом эксперименте я буду работать с подписанными числами.
Каков наиболее разумный и эффективный способ обнаружения переполнения/недополнения?