2 の累乗。
単純な実装では、オーバーフローすることなく 2 桁を乗算できるように、おそらくマシン上の単語の半分のサイズです。つまり、65536 または 4294967296 です。または、同じ理由で最大の整数型の半分のサイズになる可能性がありますが、全体的にパフォーマンスが向上する可能性があります。
しかし、私はそのようなライブラリを実際に実装したことはありません。最もよく知られているアルゴリズムを使用している場合、学校スタイルの長い乗算を行うことはありません。カラツバ掛け算 (およびその他の巧妙なトリック) は、桁のサイズの 2 倍以上の整数で実行されることでメリットが得られる可能性がありますが、パフォーマンスがどのように機能するかはわかりません。もしそうなら、256 と 32 ビットの算術演算、または 65536 と 64 ビットの算術演算を使用するのが最善です。
いずれにせよ、表現がバイナリの場合は、各操作に便利なように、より大きな 2 のべき乗ベースを選択できます。たとえば、データを乗算では基数 2^16 として扱い、加算では基数 2^32 として扱うことができます。エンディアンに注意すれば、すべて同じです。私はおそらくベース 2^16 から始めます (2^8 では無理ですが、最初からエンディアンネスを正しく取得する必要があるため)。最適化は、最適な塩基を特定することです。
バイトの倍数ではないサイズを使用することも可能ですが、基数に応じて特定の場所のストレージに未使用のビットがあるため、すべてに同じ基数を使用する必要があります。