ショーンハーゲ・ストラッセン法
その結果が 0 から 2 の範囲にない場合は、2 + 1 の倍数を足すことで正規化する。例えば、 n = 3 であり法が2+1 = 9 である場合に 656 は以下のように減らされる。
656 = 1 010 010 0002 ≡ 0002 − 0102 + 0102 − 12 = 0 − 2 + 2 − 1 = −1 ≡ 8 (mod 2 + 1).
さらに、シフト演算の結果を構築することなく、非常に大きなシフトを行える。0 から 2の範囲のAを考え、それに 2を乗じたい場合には、k を n で割って k = qn + r ( r < n )を得る。このとき
A(2) = A(2) = A[(2)(2)] ≡ (−1) · shl(A, r) (mod 2 + 1).
が成り立つ。ここで、shl(A, r)は A を r ビット左シフトしたものである。A は 2 以下で、 r < n であるため、r ビット左シフトされた A は高々 2n−1 ビットであり、1回のシフト演算と正規化のための減算のみが必要である。
最後に、 2 で割る場合には、2nが原始根であることを用いれば
2 ≡ 1 (mod 2 + 1)
である。したがって
A/2 = A(2) ≡ A(2) = shl(A, (2n − k) (mod 2 + 1))である。