除算 (デジタル)
x ∈ [ 0 , 1 2 ) {\displaystyle x\in [0,{\tfrac {1}{2}})} なので、 n {\displaystyle n} ステップ後には 1 − x 2 n {\displaystyle 1-x^{2^{n}}} と 1 の相対誤差は 2 − n {\displaystyle 2^{-n}} となり、 2 n {\displaystyle 2^{n}} の二進数の精度では 1 と見なせるようになる。このアルゴリズムをIBM方式と呼ぶこともある。
これを整数演算でおこなう場合は、256/3は当然正確な整数にはならないので、誤差があらわれる。しかし、シフト幅をより大きくし、値の範囲に注意すれば、常に不正確な部分はビットシフトによって捨てられるように変形できることがある。
具体例として32ビットの符号なし整数で、除数が3の場合 2863311531 / 2 33 {\displaystyle 2863311531/2^{33}} との乗算に変換できる。まず 2863311531 との乗算を行い、その後33ビット右シフトする。この値は正確には 1 / 2.999999999650754 {\displaystyle 1/2.999999999650754} である。
場合によっては、定数による除算を一連のシフト操作と加減算に変換できることもある。特に興味深いのは10による除算で、シフトと加減算で正確な商(と必要なら余り)が得られる。