/usr/bin/dc [filename]
/usr/xpg6/bin/dc [filename]
dc 是一个任意精度算术软件包。通常,该软件包以十进制整数运行,但可以指定输入基数、输出基数以及要保留的小数位数。dc 的整体结构是一个堆栈(逆波兰表示法)计算器。如果提供了参数,则将从该文件取输入值直到文件结尾,然后再从标准输入取值。
bc 是 dc 的预处理器,提供中缀表示法和类似于 C 语言的语法,可以实现函数。bc 还提供了合理的程序控制结构。请参见 bc(1)。
在 /usr/bin/dc 和 /usr/xpg6/bin/dc 下可识别以下构造:
该数字值被推送到堆栈上。一个数字是一个 0 至 9 组成的完整字符串。数字前面可以加一个下划线 (_) 以输入负数。数字可以包含小数点。
将堆栈顶部弹出并存储到寄存器 x 中,其中 x 可以是任何字符。如果 s 大写,则将 x 视为一个堆栈,并将值推送到该堆栈上。
寄存器 x 中的值被推送到该堆栈上。不会更改寄存器 x。所有寄存器开始时的值都为零。如果 l 大写,则将 x 视为一个堆栈,其顶部值会弹出到主堆栈上。
复制堆栈上的顶部值。
输出堆栈上的顶部值。顶部值保持不变。
将堆栈顶部解释为一个 ASCII 字符串,将其删除并输出。
输出堆栈上的所有值。
退出程序。如果在执行字符串,则递归层按两层弹出。
退出程序。堆栈上的顶部值弹出,并且字符串执行层按该值弹出。
将堆栈的顶部元素视为一个字符串,并将其作为 dc 命令的一个字符串执行。
将堆栈顶部的数字替换为其比例因子。
将加方括号的 ASCII 字符串放到堆栈顶部。
顶部的两个堆栈元素会弹出并进行比较。如果寄存器 x 符合陈述的关系,则对其求值。
将堆栈的顶部元素替换为其平方根。将考虑任何现有的参数小数部分,但会忽略比例因子。
将行的其余部分解释为 shell 命令。
弹出堆栈上的所有值。
弹出堆栈上的顶部值并将其用作进一步输入的数字基数。
将输入基数推送到堆栈顶部。
弹出堆栈上的顶部值并将其用作进一步输出的数字基数。
将输出基数推送到堆栈顶部。
弹出堆栈顶部,并将该值用作非负比例因子:在输出中输出相应的位数,并在乘、除和求幂运算中保留该位数。如果比例因子、输入基数和输出基数同时改变,则它们之间的交互是合理的。
将当前比例因子推送到堆栈顶部。
将堆栈层推送到堆栈上。
将堆栈顶部的数字替换为其长度。
从输入源(通常为终端)取得一行输入并执行。
显示 dc 调试信息。
由 bc(1) 用于数组运算。
在 /usr/bin/dc 下可识别以下构造,使用结果中的比例因子。
对堆栈顶部的两个值执行加 (+)、减 (−)、乘 (*)、除 (/)、求余 (%) 或求幂 (^) 运算。两个输入项从堆栈上弹出;将结果推送到堆栈上它们的位置。忽略任何指数的小数部分。
在 /usr/xpg6/bin/dc 上可识别以下构造。除的结果强制使用比例 20。
对堆栈顶部的两个值执行加 (+)、减 (−)、乘 (*)、除 (/)、求余 (%) 或求幂 (^) 运算。两个输入项从堆栈上弹出。将结果推送到堆栈上它们的位置。忽略任何指数的小数部分。
确保除法运算前的比例是结果的比例。
以下示例输出 n! 的前十个值:
[la1+dsa*pla10>y]sy 0sa1 lyx
有关下列属性的说明,请参见 attributes(5):
|
x 是一个八进制数字。
可用列表已耗尽(数字太多)。
堆栈上的推送太多(堆栈溢出)。
堆栈上的弹出太多(堆栈下溢)。
嵌套执行层太多。
除数为零。
未定义负数的平方根(没有虚数)。
dc 仅处理整数求幂。
允许的最大指数为 999。
输入基数 x:2<= x <= 16。
输入基数 x:2<= x <= 16。
输出基数必须小于或等于 BC_BASE_MAX。
比例因子不能小于 1。
比例因子不能大于 BC_SCALE_MAX。
指定的变量太多。
指数不能小于 1。
指数不能大于 BC_DIM_MAX。