26.1.6.13 長い整数

データを分割して表わした場合,それに対する演算も単純ではなくなります.数値の場合はいわゆる四則演算が必要で,加減乗除のそれぞれについて「プログラムを作る」ことになります.加算と減算は下の桁から1桁ずつ実行します.乗算は,1桁を乗ずる計算を繰り返します.除算は少し複雑になります.

2の100乗を求めるためには,「長い1」に2をかける演算を繰り返します.各桁に対するアルゴリズムは以下のとおりです.

下の桁からの繰上りと,その桁の値の2倍との和を求める.
その和の下1桁をその桁の結果とする.
その和の上1桁を次の桁への繰上りとする.

この「下の桁からの繰上り」は,1桁下での「次の桁への繰上り」ですから,これを表わす変数は1つ用意しておけば充分です.上に示した部分のプログラムは次のようになります.変数cが桁よりを表わします.

w = c + a[i]*2;
a[i] = w % 10;
c = w/10;

これをi=0, ..., 39について繰り返せば,「長い数」が2倍できたことになります.最初が「長い1」でしたから,これを100回繰り返せば結果が得られます.