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) |