更大的bc输入基础?

时间:2013-05-03 17:57:17

标签: base bc

我正在基础31中搜索计算器,即我希望输入和输出都在基数31中。(我实际上并不关心数字的格式,只是它很容易写入。所以,例如`013456789ABCDEFGHIJKLMNOPQRSTU'就好了。)

bc接缝是小型基地的理想选择,因为您可以定义ibase=x; obase=x。但是ibase的上限是16,因为它不想使用比F更大的数字。

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

1 个答案:

答案 0 :(得分:0)

如果你只是想做一些计算而不是重数字运算,你可以使用我的计算器Kalkulon和简单的Kalkulon script for big number arithmetic。交互式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岁时计算?