我最近读到了关于 bc 的内容,发现它支持 999 的底数。谁能指点一下 bc 的数字集(底数大于 16)。
答案1
这包含在手册页bc
:
对于大于 16 的基数,bc 使用多字符数字方法打印数字,其中每个较高的基数数字都打印为基数 10 数字。多字符数字由空格分隔。每个数字包含表示“obase-1”的十进制值所需的字符数。
答案2
是的,bc 可以处理基数最大为 999 的数字。
举个例子:
$ echo "ibase=10;obase=40;3*40^2+7" | bc
03 00 07
或者,应该是“307” = 3*40^2 + 0*40^1 + 7*40^0
。或者十进制的 4807。
$ echo "ibase=10;obase=10;3*40^2+7" | bc
4807
因此,这些值被打印为两位数(十进制)数字,并以空格作为分隔符。
其他一些例子:
$ echo "ibase=10;obase=530;371*530^9+222*530^3+127" | bc
371 000 000 000 000 000 222 000 000 127
或者,也许(在 bash 中)是相同的数字:
$ bc <<<"obase=530;1224212292558591376050694127"
371 000 000 000 000 000 222 000 000 127