dc 命令详解

| 选择喜欢的代码风格  

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

dc 命令安装:


-bash: dc: command not found

#Debian
apt-get install dc

#Ubuntu
apt-get install dc

#Arch Linux
pacman -S dc
 
#Kali Linux
apt-get install dc

#CentOS
yum install dc

#Fedora
dnf install dc

#Raspbian
apt-get install dc

dc 命令补充说明:


dc 命令是一个桌面计算器,它支持任意的、无限制的精度算术和 RPN(后缀)表示法。它还允许您定义和调用宏。通常 dc 是从标准输入读取的; 如果给定任何命令参数,则它们是 filenames,并且 dc 在从标准输入读取之前读取并执行文件的内容。所有正常输出均为标准输出;所有错误输出均为标准错误。

反向抛光(RPN)计算器将数字存储在堆栈中。输入数字会将其压入堆栈。算术运算将参数从堆栈中弹出并推入结果。

要以 dc 输入数字,请键入数字(使用大于 10 的输入基数时,使用大写字母 A 至 F 作为“数字” ),并带有可选的小数点。不支持指数表示法。要输入负数,请以 _ (下划线)开头。 - (破折号或连字符)不能用于此目的,因为它是用于减法的二进制运算符。要连续输入两个数字,请用空格或换行符分隔。这些命令无意义。

dc 命令语法:


dc [-V] [--version] [-h] [--help] [-e scriptexpression] 
   [--expression=scriptexpression] [-f scriptfile] [--file=scriptfile] 
   [file ...]

dc 命令选项:


 -e<脚本> 增加脚本中的命令到程序的命令设置
 -f<脚本文件> 增加脚本文件中的命令到程序的命令设置
P 弹出堆栈最顶端的值 
p 输出堆栈最顶端的值
n 弹出堆栈最顶端的值,然后关闭,不显示一个换行符
f 显示堆栈的所有内容
+ 加
--  减
* 乘
/ 除
% 余数
^ 指数
v 开方

dc 命令实例


首先,在命令行中,让我们输入桌面计算器命令 dc

$dc   #dc的提示只是空白行,可以接受我们的命令了。首先,让我们将一个数字压入堆栈。怎么样1234:

1234  #同样,似乎什么也没发生。让我们使用f查看堆栈的全部内容:

f

#打印以下内容:
1234

因此 1234 在堆栈上,可以进行操作了。在这里,我们将其乘以 2 并打印结果。dc 使用反向抛光(后缀)表示法,该运算符将操作数放在第一位,并将运算符放在第二位。下面的命令意思是:取栈中的最上面的项目,对第二个进行运算,使用运算乘法,然后打印结果

2* p

#这需要我们的栈顶项目1234,乘它由2,并打印结果值:
2468


#接下来我们再减去468
468- p

2000 #此时结果是2000,下面继续除以2

2/ p
1000 #此时结果就是1000,此时我们继续使用vp来求平方根

vp
31 #结果31,由于默认精度为0(计算小数点后的零位),并且我们没有更改它,因此结果已四舍五入为最接近的整数。答案实际上接近31.62。

#为了获得更精确的答案,我们必须告诉 dc 使用更高的精度。让我们告诉它使用k命令计算到十个地方:
10 k 1000 v p

31.6227766016  #<----此时精度是按10位,整个过程如下:

#1.将10推入堆栈;
#2.告诉k从堆栈中弹出该数字并将精度设置为许多小数位;
#3.将1000推入堆栈;
#4.告诉v从堆栈中弹出1000,计算平方根,然后将结果压入堆栈,然后用p打印结果。

dc 命令其他示例:

$ dc
c #清除堆栈
p #打印看看刚才的c是否生效?
dc: stack empty #<---确认清空
1
2

p
2 #<---显示最后一个,如果希望显示全部,用 f:

f
2
1

+p #<--打印“加”的结果
3

q #退出 dc

dc 整体例子,计算 36 的开方的值:

[root@commandnotfound ~]$ dc
36
v
p
6
q

dc 运算 18*18 的值:

[root@commandnotfound ~]$ dc
18
18
*
p
324
q

dc 做一次综合运算:

[root@commandnotfound ~]$ dc
7
8
*
p
56
3 2 ^ p
9
2 / p
4
f
4
56
+p
60
q

dc 命令扩展阅读:




dc 命令评论