Bc

公元前16以上的基數是多少?

  • November 25, 2018

我最近閱讀了關於 bc 的內容,發現它支持高達 999 的 obase。誰能指出我為 bc 設置的數字集,表示基數大於 16。

是的,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

這在手冊頁中有bc介紹:

對於大於 16 的基數,bc 使用多字元數字方法列印數字,其中每個較高的基數都列印為以 10 為基數的數字。多字元數字由空格分隔。每個數字包含表示“obase-1”的以十為底的值所需的字元數。

引用自:https://unix.stackexchange.com/questions/378036