每个现代的Linux桌面发行版都预装着一个带有图形界面的核算器程序。不过假如你的作业区中满是指令行窗口,那么你必定会在其间的一个指令行窗口中处理一些数字相关的问题。或许你在寻觅一款根据指令行的核算器程序。假如是这样的话,GNU bc(“basic calculator”的缩写)会是你不贰的挑选。当然Linux下有许多根据指令行的核算器运用,我以为GNU bc是功用最强壮和最有用的。
在GNU年代之前,bc实际上是一个闻名的精细核算言语。它的诞生要追溯到70年代的Unix时期了。开端bc作为一个语法和C言语类似的编程言语而闻名。跟着时刻的改动,最开端的bc演化成POSIX bc,最终变成了今日的GNU bc。
GNU bc的特性
现在的GNU bc是前期bc经过若干次改善和功用增强的成果。现在它被一切的干流GNU/Linux发行版所收纳。GNU bc支撑高精度数字和多种数值类型(例如二进制、十进制、十六进制)的输入输出。
假如你对C言语很熟悉的话,你会发现bc运用了和C言语相同或类似的算术操作符。所支撑的操作符包含算术运算符(+, -, *, /, %, ++, –)、比较运算符(, >, ==, !=, =, >=)、逻辑运算符(!, , ||)、位运算符(, |,,~, , >>)和复合赋值运算符(+=, -=, *=, /=, %=, =, |=,=,=, ||=, =, >>=)。bc内置了许多有用的函数,像是平方根、正弦、余弦、反正弦、自然对数、指数等。
怎么运用GNU bc
作为一个根据指令行的核算器,GNU bc的运用没有约束。在本文中,我会向咱们介绍bc指令的几个常用的特性。假如你想要愈加具体的辅导,你能够查阅官方攻略。
假如你没有一个预先写好的bc脚本,那么你能够在交互方式下运转bc。在这种方式下,你输入的以回车完毕的任何声明或许表达式会被马上核算出成果。你需求输入以下指令来进入bc的交互界面。假如想退出bc,你能够输入’quit’而且按回车。
$ bc
本文下面展现的比如请在bc交互界面中输入。
输入表达式
假如想要核算一个算术表达式,咱们能够在闪耀的光标处输入该表达式,然后按回车承认。你也能够将该成果存储到一个变量中,然后在其他表达式中运用该变量。
在一个bc的交互界面中,保存着没有个数约束的指令历史记录。运用上方向键来检查之前输入的指令。假如你想约束历史记录保存的指令数量,你能够将一个名为history的特别变量设置成你希望的数值。该变量默以为-1,也便是“历史记录数量没有约束”。
输入输出进制切换
常常会产生的是,你输入一个表达式而且想运用二进制或许十六进制来显现成果。bc答应你在输入输出数字的进制间转化。输入和输出的数系基别离存储在ibase和obase变量中,默认值为10,有用的数值是2到16(或许环境变量BCBASEMAX的值)。你只需求更改ibase和obase的值就能够在不同进制之间转化了。下面是一个求两个十六进制/二进制数和的比如:
需求留意的是,我有意地将obase=16放到了ibase=16前面,反过来则是不能够的。这个是因为假如我先输入ibase=16,那么随后输入的obase=16中的16会被以为是16进制的数字,也便是十进制的22。当然这个不是咱们所希望的。
调整精度
在bc中,数字的精度存储在一个名为scale的特别变量中。该变量表明小数点后数字的个数。scale默以为0,意味着一切的数字和成果以整数方式贮存。你能够经过改动scale这个特别变量的值,来调整数值的精度。
scale=4
运用内置函数
除了简略的算术操作符,GNU bc还经过外部的数学函数库来供给许多高档的数学函数。你能够在指令行界面运用“-l”选项来翻开bc。
这儿描绘了一些内置的函数。
N的二次方根:
sqrt(N)
X的正弦(X是弧度):
s(X)
X的余弦(X是弧度):
c(X)
X的反正弦(回来值是弧度):
a(X)
X的自然对数:
l(X)
X的指数对数:
e(X)
作为言语来用
作为一个核算言语,GNU bc支撑简略的声明(变量赋值、中止、回来等)、复合句子(if、while、for loop等)和自定义函数。在这儿我不会涉及到这些特性的细节,不过你能够经过官方攻略来学习怎么运用这些特性。下面是一个简略的函数示例:
define dummy(x){return(x * x);}dummy(9)81dummy(4)16
在非交互界面下运用GNU bc
到现在为止,咱们一直在交互界面下运用bc。不过愈加盛行的运用bc的办法是在没有交互界面的脚本中运转bc。这种情况下,你能够运用echo指令而且凭借管道来向bc发送输入内容。例如:
$ echo 40*5 | bc$ echo scale=4; 10/3 | bc$ echo obase=16; ibase=2; 11101101101100010 | bc
总结一下,GNU bc是一款强壮而且通用的根据指令行的核算器运用,它肯定不会让你绝望。它预装在一切的现代Linux发行版中,bc能够让你不必脱离指令行就能够进行高效的数学核算。所以,GNU bc必定会是你的独爱。