BigNumber ライブラリ¶
Big Number ライブラリの用法を学びます。
開発者 : バート・マリアーニ、ガル・ゾルト (カームソフト)
用例¶
BigNumber ライブラリで非常に大きい数の算術演算ができます。
用例:
load "bignumber.ring"
num1 = "62345678901234567891678345123456789" ### 大なり
num2 = "1237894567890123419871236545" ### 小なり
num3 = "64" ### 小なりを割る
num4 = "765432"
num5 = "3" ### 累乗
? "Add big numbers:"
a1 = new BigNumber(num1) a1.Print()
a2 = new BigNumber(num2) a2.Print()
a3 = a1 + a2 a3.Print() ? nl
? "Substract big numbers:"
a1 = new BigNumber(num1) a1.Print()
a2 = new BigNumber(num2) a2.Print()
a3 = a1 - a2 a3.Print() ? nl
? "Multiply big numbers:"
a1 = new BigNumber(num1) a1.print()
a2 = new BigNumber(num2) a2.print()
a3 = a1 * a2 a3.print() ? nl
? "Divide big numbers:"
a1 = new BigNumber(num1) a1.print()
a2 = new BigNumber(num2) a2.print()
a3 = a1 / a2 a3.print() ? nl
? "Divide big numbers: by very small number"
a1 = new BigNumber(num1) a1.print()
a2 = new BigNumber(num3) a2.print()
a3 = a1 / a2 a3.print() ? nl
? "Power of big number:"
a1 = new BigNumber(num1) a1.print()
a2 = new BigNumber(num5) a2.print()
a3 = a1 ^ a2 a3.print() ? nl
実行結果:
Add big numbers:
62345678901234567891678345123456789
1237894567890123419871236545
62345680139129135781801764994693334
Substract big numbers:
62345678901234567891678345123456789
1237894567890123419871236545
52345687663340000001554925252220244
Multiply big numbers:
62345678901234567891678345123456789
1237894567890123419871236545
77177377243260150103462178714197454736432472780119682305154005
Divide big numbers:
62345678901234567891678345123456789
1237894567890123419871236545
50364288
Divide big numbers: by very small number
62345678901234567891678345123456789
64
974151232831790123307474142554012
Power of big number:
62345678901234567891678345123456789
3
242336636261471172092347146031727004 (実行結果は次行へ続きます)
371698195628343934238988256152289508 (実行結果は次行へ続きます)
493964611043228971692389860897069
BigNumber 関数¶
このライブラリには下記の関数があります。
FuncAdd(num1,num2)
FuncSubtract(num1,num2)
FuncCompare(num1,num2)
FuncDivide(num1,num2)
FuncMultiply(num1,num2)
FuncPower(num1,num2)
FuncBinaryToDecimal(num1)
FuncDecimalToBinary(num1)
printBinaryDigits(binList)
printDecimalDigits(decList)
BigNumber クラス¶
このライブラリには下記のクラスがあります。
class BigNumber
func init aPara
func operator cOperator, Para
func print
func value
ライブラリのソースコード¶
ライブラリのソースコードは ring/ringlibs/bignumber フォルダにあります。
ソースコード : https://github.com/ring-lang/ring/blob/master/ringlibs/bignumber/bignumber.ring