このように、桁数が上がれば回路は飛躍的に複雑になるが、いずれもたった2段で桁上げ信号が生成される。(2入力のANDも3入力のANDも、回路上はトランジスタを並列に並べるだけの事であるので、1段である事に変わりがない。)この方法を用いると、桁数がいくつになってもたった4段しか必要としないため画期的な高速化を図る事ができる。必要となる回路素子数が格段に多くなるため、消費電力と回路のコストが大きく犠牲になる。キャリー予測キャリー先読みを行わない加算器の場合、上位桁の計算は、下位桁の値が決定するまで開始できない。そこで、全桁数を半分に分割し、下位桁の計算と同時に、上位桁の計算を、下位桁から上位桁への桁上げの有無双方の2通りについて行う。下位桁の計算が完了した時点で、上位桁への桁上げの有無によって、計算済みの2通りの上位桁の値の片方を選択する。このため、上位桁は加算器を2重に用意する必要がある。これにより、全加算器の数は1.5倍、桁数の半分のビット数のマルチプレクサ(データセレクタ)が必要となるが、計算時間はほぼ半分になる。1/8...とさらに分割して予測計算をすることで、究極的には加算器1段分の遅延と、桁数の2の対数段分(32bitであれば5段)のマルチプレクサの遅延で計算が完了する。桁数の対数に比例する計算時間の遅延が発生するが、回路規模は桁数比例にとどまり、キャリー先読みのように桁数の指数関数となる大きさになることはない。一般に、有限桁数の減算は「補数」を用いることで加算に置き換えて計算する事が出来る。理解しやすいように10進数で考えてみよう。2840」という計算を考える。この減算を直接計算する代わりに、この式を次のように変形してみよう。10000「9999-2840」の部分は「7159」であるが、9999から4桁以内の数字を引く場合には桁借りが発生する事は無いため、他の桁の事を考慮する事無く各桁毎に「9-2」「9-8」「9-4」「9-0」を行なえばよい。「足すと9になる数」に各桁を置き換えるだけで「9999-2840」の計算ができることになる。この「足すと9になる数」のことを、「9の補数」と呼ぶ。上記の減算は、次の手順で計算できる事になる。2840の各桁を9の補数化する。