跳到主要内容

bignum

简介

提供一些大数计算的api 以2^24为底数,数组形式表示一个大数。

  • 32位补码
  • 正数 [d0,d1,...,d31] <=> d0*(2^24^31)+d1*(2^24^30)+...+dn*(2^24^0)

支持最大数值:

bignum.dumps(bignum.max()) = 776259046150354467574489744231251277628443008558348305569526019013025476343188443165439204414323238975243865348565536603085790022057407195722143637520590569602227488010424952775132642815799222412631499596858234375446423426908028927

bignum.dumps(bignum.max()).length() = 231

组件接口

bignum.gs

函数原型函数作用
BIGNUM loads(string numstr)将大数字符串转换成大数格式(array)
BIGNUM load_int(int num)将int64转换成大数格式(array)
BIGNUM load_scientific(mixed b, int exp)将科学计数法转换成大数格式(array)
string dumps(BIGNUM bnum)将大数格式(array)成大数字符串
BIGNUM zero()表示0的大数格式(array)
BIGNUM one()表示1的大数格式(array)
BIGNUM max()最大值的大数格式(array)
BIGNUM abs(BIGNUM num)大数格式(array)的绝对值
BIGNUM add(BIGNUM a, mixed b)大数格式(array)的加法运算
BIGNUM sub(BIGNUM a, mixed b)大数格式(array)的减法运算
BIGNUM mul(BIGNUM a, mixed b)大数格式(array)的乘法运算
BIGNUM div(BIGNUM a, mixed b)大数格式(array)的除法运算
bool is_negative(BIGNUM bnum)大数格式(array)是否为负数
bool is_zero(BIGNUM bnum)大数格式(array)是否为0
bool is_equal(BIGNUM a, BIGNUM b)大数格式(array)是否相bb
bool is_less(BIGNUM a, BIGNUM b)大数格式(array)是否更小(a < b)