Полагаю, здесь есть вопрос, также без знака вопроса.
Вы пытаетесь решить две сложные задачи одновременно (это, вероятно, не удастся - или уже провалилось). Разделите эти две задачи:
- безопасное управление элементами списка в бесплатном хранилище (используйте std :: list или std :: vector; если нет, только для ознакомительных целей)
- выполнять многоточные арифметические операции (особенно сложное деление, даже когда мы изучали его в школе)
Для хранения "4-байтовых цифр" лучше использовать std :: vector. Он использует 4 байта на число вместо 8 или более при хранении их в узлах списка. Std :: vector может расти, когда числа увеличиваются (a + = b) и уменьшаются, если это необходимо.
Для арифметики вы также можете отделить знак плюс / минус и оперировать неотрицательными числами в первую очередь.
Сложение, вычитание и умножение относительно просты. Для разделения я должен был посмотреть на «Искусство компьютерного программирования» Тома Дональда Кнута (том 2), и у меня было две недели, чтобы понять это. Может быть, я не особенно хорош в этом моменте.
Примите во внимание, что вы получаете 4-байтовые числа при умножении 2-х байтовых чисел. В противном случае целочисленное переполнение испортит ваши результаты. И наоборот, для деления чисел.
Если вы хотите посмотреть мои результаты по одному и тому же учебному заданию, поищите мою фамилию в Google и "Ganzzahl". Но будьте осторожны, он не сильно протестирован, написан на немецком языке, и поскольку я написал несколько лет назад, я больше не считаю его хорошо написанным кодом ...
Если вы ищете решение для производственного кода, попробуйте перейти к некоторой библиотеке, такой как GNU multi точность integer.