任意精度演算
加算や減算の最も単純なアルゴリズムは、単純に桁ごとに順次加算・減算していき、繰り上げや繰り下げを必要に応じて行うものである。この計算量は O ( N ) {\displaystyle O(N)} である(ランダウの記号参照)。
乗算の場合、最も単純なアルゴリズムは筆算の計算方法をそのまま採用する手法で O ( N 2 ) {\displaystyle O(N^{2})} の計算量である。計算量が O ( N log  ( N ) log  ( log  ( N ) ) ) {\displaystyle O(N\log(N)\log(\log(N)))} の乗算アルゴリズムとして、高速フーリエ変換に基づくショーンハーゲ・ストラッセン法(Schönhage-Strassen-Algorithmus)がある。また、カラツバ法では O ( n log 2  3 ) {\displaystyle O(n^{\log _{2}3})} の計算量である。 N {\displaystyle N} があまり大きくない場合、カラツバ法の方が性能がよい(前者の性能が勝つのは少なくとも1万桁以上の場合)。
コンピュータによっては、積をその桁の値と桁上り(キャリー)に自動的に分ける機能があり、例にある mod と div という操作を必要としない。例えば IBM 1130 では16ビット整数の乗算の積は32ビットで表され、これを2つの16ビット整数として扱うこともできる。その場合、大きな数の基数は65536となり、桁上りは上位16ビットで、桁は下位16ビットということになる。したがって、それらを分ける際に mod や div を必要としない。
プロセッサには存在するキャリーフラグなどを扱えない、などといった理由から、こういったたぐいのプログラミングには高水準言語は不適という面があり、機械語によるハックによって格段に高速な実装が実現できる場合もある。しかし、数値演算のコードはデバッグの難しさもあり、そのあたりのトレードオフもある。高水準言語のソースレベルでポータブルなライブラリが必要な場合、C言語では共用体、あるいは FORTRAN のEQUIVALENCE文や PL/1 の OVERLAY文などを使ったトリック的な書き方で、いずれも一般論としてはあまり薦められない手法とされているものではあるが、実装が可能な場合もある。
1つの桁の乗算において、一時変数は (radix - 1) + carry を保持できなければならず、carry の最大値は (base - 1) である。IBM 1130 の場合、レジスタが32ビットなので、16ビットの演算の途中結果が16ビットで表せる範囲を超えても処理を続行できる。