linux之bc命令使用详解_Linux命令bc使用详解

bc 命令是任意精度计算器语言,通常在linux下当计算器用,可以做基本的数学运算及进制转换。

bc命令参数

-i:强制进入交互式模式;

-l:定义使用的标准数学库;

-w:对POSIX bc的扩展给出警告信息;

-q:不显示bc环境信息,直接运行命令;

-v:显示指令版本信息;

-h:显示指令的帮助信息。

bc命令常用的运算符:

+ 加法

– 减法

* 乘法

/ 除法

^ 指数

% 余数

bc运算实例

1、运行bc命令,并进行简单的数学运算

robin@robin-Lenovo:~$ bc -q

1

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

1

robin@robin-Lenovo:~$echo"3+2*6"|bc

15

3、将十进制的254转换为二进制数

robin@robin-Lenovo:~$ echo "obase=2;ibase=10;254" | bc

1

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

1

robin@robin-Lenovo:~$echo"obase=16;ibase=8;512"|bc

14A

3.2、将八进制的12转换为二进制数

robin@robin-Lenovo:~$ echo "obase=2;ibase=8;12" | bc

1

robin@robin-Lenovo:~$echo"obase=2;ibase=8;12"|bc

1010

4、显示10/4的运算结果

robin@robin-Lenovo:~$ echo "10/4" | bc

1

robin@robin-Lenovo:~$echo"10/4"|bc

2

robin@robin-Lenovo:~$ echo "scale=2;10/4" | bc

1

robin@robin-Lenovo:~$echo"scale=2;10/4"|bc

2.50

注意两次命令的区别,当不指定小数位数时,默认商是取整数的,若要显示精确结果,需使用scale=Number,来设置需要保留小数位数。

5、将文件sum.txt中的数学算式逐个运算出结果

robin@robin-Lenovo:~$ bc -q sum.txt

1

robin@robin-Lenovo:~$bc-qsum.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位)

作者: 洛水之滨

天行健,君子以自强不息;

地势坤,君子以厚德载物。查看洛水之滨的所有文章

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值