Если вы посмотрите на большинство библиотек типов BigNum, то увидите, что они построены поверх существующих типов данных "SmallNum". Эти типы данных "SmallNum" (short, int, long, float, double, ...) находятся в двоичном формате по слишком многим причинам для подсчета. Вместо вектора из 10 основных цифр ваш код будет намного быстрее (намного, намного, намного быстрее!), Если работать с вектором (например) unsigned int
s.
Это одно из тех мест, где производительность имеет значение. Предположим, вы используете пакет BigNum для решения проблемы, которая может быть решена без обращения к BigNum. Даже лучшая библиотека BigNum будет намного медленнее (намного, намного медленнее), чем упрощенный, не BigNum подход. Если вы попытаетесь решить проблему, выходящую за рамки стандартных представлений, снижение производительности приведет к еще большему ухудшению.
Лучший способ преодолеть это врожденное наказание - использовать как можно больше преимуществ встроенных типов.