linux的程序员计算器,linux中的计算器

windows系统安装时会自带计算器,在cmd中运行calc即可打开。那么linux系统中有没有计算器呢?答案是肯定的。

linux下的图形计算器

linux系统一般也会默认安装一个图形界面的计算器,例如红帽系统默认安装的是gcalctool。假如在一个图形桌面环境中需要一个计算器时,在终端中运行gcalctool即可打开。

如果系统没有运行桌面环境,那是否有一个支持命令行的计算器呢?

linux下的命令行计算器

bc是任意精度计算器,官方对它的描述是“an arbitrary precision calculator language”,一种支持任意精度计算的计算器语言,它支持变量、数组、输入输出、分支结构、循环结构、函数等基本的编程元素。bc可以在交互环境下使用,也可以再shell编程中使用。

* 交互模式下使用bc

在终端中输入bc --help,可以查看bc的使用说明:

[release@redhat59-211 ~]$ bc -h

usage: bc [options] [file ...]

-h --help print this usage and exit,显示帮助

-i --interactive force interactive mode,强制进入交互模式

-l --mathlib use the predefine math routnes,加载数学库

-q --quiet don't print initial banner,不打印版本信息

-s --standard non-standard bc constructs are errors

-w --warn warn about non-standard bc constructs

-v --version print version information and exit,显示版本

bc有四个常用的内置变量,如下表所示:

变量名

作用

scale

指定精度,即小数点后的位数,默认为0

ibase

指定输入的数字的进制,如ibase=2

obase

指定输入数字的进制,如果需要设置ibase和obase,应先设置obase

last

表示最近打印的数字

在终端中输入bc,可以进行bc的交互模式,然后输入想要计算的表达式即可。示例如下图,可见bc支持变量、函数,功能还是挺强大的。

[release@redhat59-211 ~]$ bc

bc 1.06

Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.

This is free software with ABSOLUTELY NO WARRANTY.

For details type `warranty'.

1+1

2

n=2

n+1

3

sqrt(9)

3

define myadd(a,b){

return a+b;

}

myadd(1,2)

3

last

3

此外,如果想计算正弦、余弦、正切等,可以在启动bc时加-l参数,如bc -l,这样就引入了数学库,可以使用s(1)计算1的正弦值。

函数名

作用

s(x)

计算正弦值,x为弧度值

c(x)

计算余弦值

a(x)

计算反正切值

l(x)

计算x的自然对数

e(x)

计算e的x次方

j(n,x)

贝塞尔函数,计算从n到x的阶数

[root@localhost bin]# bc -l

bc 1.06.95

Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.

This is free software with ABSOLUTELY NO WARRANTY.

For details type `warranty'.

s(1)

.84147098480789650665

c(1)

.54030230586813971740

s(1)*s(1)+c(1)*c(1)

.99999999999999999999

* shell脚本中使用bc计算器

在shell脚本中可以借助管道或者输入重定向来使用bc计算器。

借助管道使用bc

echo "expression"|bc,其中expression是计算的数学表达式。

示例:var=$(echo "1+1"|bc),将1+1的计算结果赋值给var变量

[release@redhat59-211 ~]$ echo "10^2"|bc

100

[release@redhat59-211 ~]$ var=$(echo "10^2"|bc)

[release@redhat59-211 ~]$ echo $var

100

[release@redhat59-211 ~]$ echo "$var*2"|bc

200

[release@redhat59-211 ~]$ echo "obase=2;10"|bc 10转换为2进制

1010

借助重定向使用bc

使用方法:

var=$(bc <

expressions

EOF

)

示例:

[release@redhat59-211 ~]$ var=$(bc <

> obase=10;

> ibase=16;

> F

> EOF

> )

[release@redhat59-211 ~]$ echo $var

15

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值