мощность 2.
Для простой реализации, возможно, половина размера слова на вашем компьютере, чтобы вы могли умножить две цифры без переполнения. Так, 65536 или 4294967296. Или, возможно, вдвое меньше, чем самый большой целочисленный тип, по той же причине, но, возможно, лучшая производительность по сравнению со всеми.
Но я никогда не реализовывал такую библиотеку: если вы используете самые известные алгоритмы, вы не будете делать длинное умножение в школьном стиле. Умножение Карацубы (и любые другие хитрые трюки, которые вы используете) может принести пользу от целого числа, которое более чем в два раза больше цифр, я действительно не знаю, как работает производительность. Если это так, то лучше всего использовать 256- и 32-разрядную арифметику или 65536 и 64-разрядную арифметику.
В любом случае, если ваше представление является двоичным, то вы можете выбирать более мощные базы двух степеней, удобные для каждой операции. Например, вы можете обработать данные как базу 2 ^ 16 для умножения, но базу 2 ^ 32 для сложения. Это все то же самое, если вы осторожны с порядком байтов. Я, вероятно, начну с базы 2 ^ 16 (поскольку это заставляет меня правильно начинать с порядком байтов, а 2 ^ 8 - нет), и посмотрим, как я добьюсь - поскольку каждая операция оптимизирована, часть Оптимизация заключается в том, чтобы определить лучшую базу.
Возможно использование размера, не кратного байтам, но тогда вам придется использовать одну и ту же базу для всего, потому что в определенных местах в соответствии с базой есть неиспользуемые биты в хранилище.