26.1.6.12 大きなデータ

Javaでは整数データは,intの型で約10億(10進表記で9桁)まで表わすことができますが,これ以上大きな数,たとえば日本の国家予算を扱うときはどうすればよいでしょうか.それには,数字をいくつかに分割して表現すればいいのです.たとえば,もし仮にint型の値が0から99までしか表現できないものとして,"1999"を表わすには,int型の値を2つもちいて,最初の値を"19",次の値を"99"としておきます.

「大きな数」の例として,2の100乗を計算してみましょう.この数は10進表記で約30桁になりますから,どうしても分割表現が必要になります.ここでは思い切って

配列の1要素に数字1個

というぜいたくな表現にしてみましょう.配列のサイズは余裕を見て40としておきます.

int a[ ] = new int[40];

「桁位置」も決めておく必要があります.ここでは

1 の位の数はa[0], 10の位はa[1], 100の位はa[2], ...

としておきます.こうすることにすると,長い数としての1

a[0]=1, a[1]=0, a[2]=0, a[3]=0, a[4]=0, ..., a[39]=0

で表わされます.また,長い数としての1867

a[0]=7, a[1]=6, a[2]=8, a[3]=1, a[4]=0, ..., a[39]=0

となります.