0

我正在寻找一个以 31 为基数的计算器,即我希望输入和输出都以 31 为基数。(我实际上并不关心数字的格式,只是它易于写入。所以,对于例如“013456789ABCDEFGHIJKLMNOPQRSTU”就可以了。)

bc接缝是您可以定义的小型底座的好选择ibase=x; obase=x。但是 ibase 有一个上限——即 16,因为它不想使用比 F 更大的数字。

有什么解决方法吗?或者,也许是一种如何以支持bc更大基础的方式重新编译的方法?或者,是否有一些替代方案bc至少可以做基本的算术(如+、-、/、*、^)?

4

1 回答 1

0

如果你只想做一些计算而不是繁重的数字运算,你可以使用我的计算器Kalkulon和一个简单的Kalkulon 脚本来进行大数运算。交互式 Kalkulon 会话如下所示:

Load("examples/bignum.k")
                    outl[1] = 0

string2Bn("1234567890ABCDEFGHIJKLMNOPQRSTU",31)
                    outl[2] = {587, 938220, 58035, 844882, 441786, 886253, 755598, 800665}

string2Bn("UTSR",31)
                    outl[3] = {922494}

mulBn(outl[2], outl[3])
                    outl[4] = {542, 369480, 374217, 718688, 983253, 751847, 772017, 360020, 658510}

printBn(out)
542369480374217718688983253751847772017360020658510
                    outl[5] = 51

Bn2string(outl[4],31)
                    outl[6] = "121UOIC5UEHLRAUOIC5UOIC5UOIC5UNHB64"

divBn(outl[4], outl[2])
                    outl[7] = {922494}

Bn2string(out,31)
                    outl[8] = "UTSR"

我只是好奇:为什么要以 31 为底进行计算?

于 2013-05-03T19:06:30.523 回答