例1) 123454322/11111の商と余りを求める。

リトルエンディアンで表記しています
a[]={ 2,2,3,4,5,4,3,2,1 }; s=8;
b[]={ 1,1,1,1,1 }; t=4;
D-10

正規化する。

k=D/(1+b[t]=10/(1+1)=5
a=a*k; a[]={ 0,1,6,1,7,2,7,1,6 }; s=8;
b[]={ 5,5,5,5,5 }; t=4;

最上位の商の位置を求める

a[s]とb[t]を比較

6&gt5なので商の位置はu=s-t=8-4=4となる
商は1となる。q'=1とする。

余りを求める。

a=61727-5555*1=6172
a[]={ 0,1,6,1,2,7,1,6,0 }
答えが正なので仮商は正しい。
q[]={ 0,0,0,0,1 }

2桁目の商を求める

a[]={ 0,1,6,1,2,7,1,6,0 } s=7
b[]={ 5,5,5,5,5 }; t=4;

a[s]とb[t]を比較する。

6&gt5なので商の位置はu=s-t=7-4=3となる
商は1となる。q=1となる。

余りを求める。

a=61721-55555*1=6166
a[]={0,1,6,6,6,1,6,0,0}
答えが正なので仮商は正しい。
q[]={ 0,0,0,1,1 }

3桁目の商を求める

a[]={0,1,6,6,6,1,6,0,0} s=6;
b[]={ 5,5,5,5,5 }; t=4;

a[s]とb[t]を比較する。

6&gt5なので商の位置はu=s-t=6-4=2となる
商は1となる。q=1となる。

余りを求める。

a=61666-55555*1=6111
a[]={0,1,1,1,1,6,0,0,0}
答えが正なので仮商は正しい。
q[]={ 0,0,1,1,1 }

4桁目の商を求める

a[]={0,1,1,1,1,6,0,0,0}; s=5
b[]={ 5,5,5,5,5 }; t=4;

a[s]とb[t]を比較する。

6&gt5なので商の位置はu=s-t=5-4=1となる
商は1となる。q=1となる。

余りを求める。

a=61111-55555*1=5556
a[]={0,6,5,5,5,0,0,0,0}
答えが正なので仮商は正しい。
q[]={ 0,1,1,1,1 }

5桁目の商を求める

a[]={0,6,5,5,5,0,0,0,0} s=4
b[]={ 5,5,5,5,5 }; t=4;

a[s]とb[t]を比較する。

6&gt5なので商の位置はu=s-t=4-4=0となる
商は1となる。q=1となる。

余りを求める。

a=55560-55555*1=10
a[]={5,0,0,0,0,0,0,0,0}
答えが正なので仮商は正しい。
q[]={ 1,1,1,1,1 }
a[]={5,0,0,0,0,0,0,0,0}
a=a/kを実行すると余りa[]={ 1,0,0,0,0,0,0,0,0 } が得られる

筆算の例

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



                11111=q[]
           ----------
b[]=  55555)617271610=a[]
            55555
            ------                              
            061721=a[]                  
            055555
            -------                     
             061666=a[]         
             055555
             -------            
              061111=a[]        
              055555
              ------    
               055560=a[]
               055555
               ------
               000005=a[]