例3) 400,000,000,000/500,999,999の商と余りを求める。

リトルエンディアンで表記しています
a[]={ 000,000,000,400 }; s=4;
b[]={ 999,999,500 }; t=3;
D=1000
正規化する。
k=D/(1+b[t]=10/(1+500)=1
a=a*k; a[]={ 000,000,000,400 }; s=4;
b[]={ 999,999,500 }; t=3;
最上位の商の位置を求める
a[s]とb[t]を比較
400 < 500なので商の位置はu=s-t-1=4-3-1=0となる
仮商はq'=(a[s]*D+a[s-1])/b[t]=400000/500=800
q'b[t-1]>Dr'+a[s-2]のチェック
r'=0
800*500 >1000*0+0となるため--q' 及び r'+=b[t]を実行する
q'=800-1=799 r'=0+500=500;
再度 q'b[t-1]>Dr'+a[s-2]のチェック
799*500 <1000*500+500となるので次へ進む
a-a-bq'
q[u]=799
a=a-bq'
a=400,000,000,000-500,999,999*799=400,000,000,000-400,298,999,201=-298,999,201
答えが負なので仮商は大きい
q'=q'-1=799-1=798
a=a+b=-298,999,201+500,999,999=202,000,798 s=2
q[u]=798
t>s 3>2 現在のqが商であり現在のaをkで割ると余りが求められる
a=a/k=798
筆算の例

※IE7以下の場合、表示がずれます


                              798=q[]
                 ----------------
b[]=  500,999,999)400,000,000,000=a[]
                  399,797,999,202
                  ---------------			
                      202,000,798=a[]