例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>5なので商の位置は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>5なので商の位置は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>5なので商の位置は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>5なので商の位置は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>5なので商の位置は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[]