Какую структуру данных я должен использовать для класса BigInt

Я хотел бы реализовать класс BigInt, который сможет обрабатывать действительно большие числа. Я хочу только складывать и умножать числа, однако класс также должен обрабатывать отрицательные числа.

Я хотел представить число в виде строки, но при преобразовании строки в int и обратно для сложения возникают большие накладные расходы. Я хочу реализовать дополнение, как в старшей школе, добавить соответствующий заказ, и если результат больше 10, добавить перенос в следующий заказ.

Тогда я подумал, что было бы лучше обрабатывать его как массив unsigned long long int и сохранять знак, разделенный bool. При этом я боюсь размера int, поскольку стандарт С++, насколько мне известно, гарантирует только то, что int < float < double. Поправьте меня если я ошибаюсь. Поэтому, когда я достигаю некоторого числа, я должен двигаться в массиве вперед и начинать добавлять число в следующую позицию массива.

Есть ли какая-либо структура данных, подходящая или лучше для этого?

5
задан Cœur 30 September 2017 в 13:38
поделиться