BigNumber ライブラリ

Big Number ライブラリの用法を学びます。

開発者 : バート・マリアーニ、ガル・ゾルト (カームソフト)

ライブラリの読み込み

この関数の使用前に bignumber.ring ライブラリを読み込みます。

load "bignumber.ring"
# BigNumber ライブラリ関数の使用

用例

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