linux中的各种计算方式expr|bc|dc|let

来源:互联网 发布:itc智能网络广播系统 编辑:程序博客网 时间:2024/05/16 19:21

1.expr

使用格式:

expr EXPRESSION
使用举例:
$expr 9 + 8 - 7 \* 6 / 5 + \( 4 - 3 \) \* 211

使用expr的注意事项:

(a)表达式中量和运算符号之间要有空格及一些运算符号需要转义

(b)expr只适用于整数之间的运算


2.bc

(1)作用:

       bc是一种任意精度的计算语言,注意是一种语言,它提供了一些语法结构,比如条件判断、循环等,可以说是很强大的,但是我在实际中还没有找到需要这个用途的场合 。另外一个用途就是用来进行进制转换。上面我们介绍的expr只支持整数运算,但对于浮点运算就无能为力了,而且expr不能进行指数运算,这些对bc来说都不在话下。

(2)常见的选项

-i 强制交互模式;-l 使用bc的内置库,bc里有一些数学库,对三角计算等非常实用;例如sin cos-q 进入bc交互模式时不再输出版本等多余的信息。
(3)使用举例

bc可以有交互模式和非交互模式(和echo配合使用)两种:

#法一:交互模式$bc -l -q4/3                   /*未指定精度默认保留整数*/scale=5               /*指定精度为5*/4/31.33333ibase=2               /*指定进制转换的输入机制为二进制,输出默认为是十进制*/104^2                   /*指数运算,注:指数不能为浮点数*/4*a(1)                /*计算π值,a()是个函数:arctan(),好吧,老师教的都被狗吃了,π值是等于四倍的arctan(1)么?*/3.14159265358979323844quit                  /*退出*/#法二:非交互模式echo "7+3" | bcecho "s(2/3*a(1))" | bc -l

4.dc

dc相比与bc要复杂,简单的说dc是一直压栈操作,和bc一样,它也可以交互使用,或者与echo一起配合使用。dc也支持浮点运算。

使用举例:

echo "4 3 * 2 + 1 -p" | dc


5.let

作用:let用来计算EXPRESSION

使用格式:

let EXPRESSION
使用举例:
#!/bin/bashlet b=4+5echo $blet b++echo $b

6.使用((expression))来计算表达式

0 0