bc 命令是任意精度计算器语言,通常在linux下当计算器用,可以做基本的数学运算及进制转换。
bc命令参数
-i:强制进入交互式模式;
-l:定义使用的标准数学库;
-w:对POSIX bc的扩展给出警告信息;
-q:不显示bc环境信息,直接运行命令;
-v:显示指令版本信息;
-h:显示指令的帮助信息。
bc命令常用的运算符:
+ 加法
– 减法
* 乘法
/ 除法
^ 指数
% 余数
bc运算实例
1、运行bc命令,并进行简单的数学运算
robin@robin-Lenovo:~$ bc -q
2+3
5
3*4
12
2+3*5
17
100/2
50
2^3
8
100%3
1
3.14*10*10
314.00

- 在终端执行bc -q命令将启动计算程序,可连续进行数学运算,退出时只需输入“quit”命令,并按回车。
2、以管道形式显示3+2*6运算结果
robin@robin-Lenovo:~$ echo "3+2*6" | bc
15
3、将十进制的254转换为二进制数
robin@robin-Lenovo:~$ echo "obase=2;ibase=10;254" | bc
11111110
- ibase 为转换前数字的数制
- obase 为转换后数字的数制
- 您也可以任意设置ibase及obase的值,来进行不同数制间的转换
3.1、将八进制的512转换为16进制数
robin@robin-Lenovo:~$ echo "obase=16;ibase=8;512" | bc
14A
3.2、将八进制的12转换为二进制数
robin@robin-Lenovo:~$ echo "obase=2;ibase=8;12" | bc
1010
4、显示10/4的运算结果
robin@robin-Lenovo:~$ echo "10/4" | bc
2
robin@robin-Lenovo:~$ echo "scale=2;10/4" | bc
2.50
- 注意两次命令的区别,当不指定小数位数时,默认商是取整数的,若要显示精确结果,需使用scale=Number,来设置需要保留小数位数。
5、将文件sum.txt中的数学算式逐个运算出结果
robin@robin-Lenovo:~$ bc -q sum.txt

6、其它常用函数
- length() 返回数据的位数
- scale() 返回数据小数位数
- sqrt() 开平方根

7、其它基于库函数的运算
s(x): 正弦函数(x为弧度)
c(x): 余弦函数(x为弧度)
a(x): 反正切函数(结果为弧度)
l(x): 自然对数函数
e(x): : 以e为底的指数函数
j(n,x): 贝赛尔函数
使用这些库函数时,bc要加上 -l 參数 (加上-l时, scale=20,也即小数位数为20位)
