尽管Tcl库math::bignum和math::bigfloat很不错,但两者之间的中间地带需要解决。也就是说,bignums在不同的基中,并且有一个radix point。
目前,math::bignum只处理整数(afaict),而math::bigfloat不允许你为math::bigfloat::fromstr (同上)指定不同的基。
有没有人知道针对主流脚本语言(如Tcl、Perl、Python、Ruby、Lua)或次要脚本语言(例如newLISP)的库,它可以在不同的基数中实现bignums并处理基数?
发布于 2012-11-17 03:17:17
bignumber.js是一个Javascript库,它处理基数为2到36的小数点的数字。
发布于 2009-04-05 14:26:58
我找不到任何用于此的库,但我找的时间不长。
但是,您可以解决这个问题,类似于您需要64位数据类型时所做的操作,但只有32位数据类型可用。有了你已经拥有的库,你应该能够以b为基数表示一个数字,如下所示:
ABCDEF.GHIJKLMN可以分为两个大数ABCDEF和GHIJKLMN。GHIJKLMN实际上表示GHIJLMN / pow(b,length(GHIJKLMN)) => GHIJKLM / pow(b,8)。现在你可以覆盖你需要的运算符,这些运算符应该可以用于+,-,*,/之类的东西。如果你需要更多像sqrt、log或pow这样的东西,这个变通方法会变得太复杂,你真的应该寻找一个库。
发布于 2009-04-15 06:01:37
最好的办法是使用GMP (libgmp)。
我自己已经花了很长时间和努力寻找.NET版本,但没有运气。
https://stackoverflow.com/questions/718966
复制相似问题