超高精度Int型演算
乗法演算関数

大きい整数の演算をしようとすると、Double型になりますが、Double型の最大値は。18,446,744,073,709,551,615です。これ以上の値になるとコンパイルエラーが発生します。
先にこの桁数の問題を解決する「超高精度演算加法演算関数」を示しましたが、今回は乗法関数を作ります。
 

乗法演算関数


 

検算

プログラムでの演算の正確性を確かめるためにDouble型での計算と比較します。
num1 = 2573819
num2 = 2633579
として計算すると
str1 + str2 = 6778355668201 (Double型による計算)
num1 + num2 = 6778355668201 (プログラムによる計算)
となります。
 

テスト?

でたらめに打った数十桁の数字で(まだ乱数関数を作成していないので)計算してみます。
 
let num1 = "3721985382437126759521567512621625985796546372432641958163523712495898226"
let num2 = "98562543721675895884854327132231548789554585654732382765752572"
計算結果
366848346987897886372440763968754370731016594632115922996415345021270919943294580678909359639175452260905788046423500165276938009737272
 
となります