`
烁烁Bo11
  • 浏览: 9145 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

分享一个命令行计算器-bc

阅读更多
分享一个命令行计算器-bc

假如你在一个图形桌面环境中需要一个计算器时,你可能只需要一路进行点击便可以找到一个计算器。例如,Fedora 工作站中就已经包含了一个名为 Calculator 的工具。它有着几种不同的操作模式,例如,你可以进行复杂的数学运算或者金融运算。但是,你知道吗,命令行也提供了一个与之相似的名为 bc 的工具?下面兄弟连(www.lampbrother.net)为大家做个介绍:

bc 工具可以为你提供的功能可以满足你对科学计算器、金融计算器或者是简单计算器的期望。另外,假如需要的话,它还可以从命令行中被脚本化。这使得当你需要做复杂的数学运算时,你可以在 shell 脚本中使用它。

因为 bc 也被用于其他的系统软件,例如 CUPS 打印服务,所以它可能已经在你的 Fedora 系统中被安装了。你可以使用下面这个命令来进行检查:

dnf list installed bc
假如因为某些原因你没有在上面命令的输出中看到它,你可以使用下面的这个命令来安装它:

sudo dnf install bc
用 bc 做一些简单的数学运算

使用 bc 的一种方式是进入它自己的 shell。在那里你可以按行进行许多次计算。当你键入 bc 后,首先出现的是有关这个程序的警告:

$ bc
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'.
现在你可以按照每行一个输入运算式或者命令了:

1+1
bc 会回答上面计算式的答案是:

2
在这里你还可以执行其他的命令。你可以使用 加(+)、减(-)、乘(*)、除(/)、圆括号、指数符号(^) 等等。请注意 bc 同样也遵循所有约定俗成的运算规则,例如运算的先后顺序。你可以试试下面的例子:

(4+7)*2
4+7*2
若要退出 bc 可以通过按键组合 Ctrl+D 来发送 “输入结束”信号给 bc 。

使用 bc 的另一种方式是使用 echo 命令来传递运算式或命令。下面这个示例就是计算器中的 “Hello, world” 例子,使用 shell 的管道函数(|) 来将 echo 的输出传入 bc 中:

echo '1+1' | bc
使用 shell 的管道,你可以发送不止一个运算操作,你需要使用分号来分隔不同的运算。结果将在不同的行中返回。

echo '1+1; 2+2' | bc
精度

在某些计算中,bc 会使用精度的概念,即小数点后面的数字位数。默认的精度是 0。除法操作总是使用精度的设定。所以,如果你没有设置精度,有可能会带来意想不到的答案:

echo '3/2' | bc
echo 'scale=3; 3/2' | bc
乘法使用一个更复杂的精度选择机制:

echo '3*2' | bc
echo '3*2.0' | bc
同时,加法和减法的相关运算则与之相似:

echo '7-4.15' | bc
其他进制系统

bc 的另一个有用的功能是可以使用除了十进制以外的其他计数系统。例如,你可以轻松地做十六进制或二进制的数学运算。可以使用 ibase 和 obase 命令来分别设定输入和输出的进制系统。需要记住的是一旦你使用了 ibase,之后你输入的任何数字都将被认为是在新定义的进制系统中。

要做十六进制数到十进制数的转换或运算,你可以使用类似下面的命令。请注意大于 9 的十六进制数必须是大写的(A-F):

echo 'ibase=16; A42F' | bc
echo 'ibase=16; 5F72+C39B' | bc
若要使得结果是十六进制数,则需要设定 obase :

echo 'obase=16; ibase=16; 5F72+C39B' | bc
下面是一个小技巧。假如你在 shell 中做这些十六进制运算,怎样才能使得输入重新为十进制数呢?答案是使用 ibase 命令,但你必须设定它为在当前进制中与十进制中的 10 等价的值。例如,假如 ibase 被设定为十六进制,你需要输入:

ibase=A
一旦你执行了上面的命令,所有输入的数字都将是十进制的了,接着你便可以输入 obase=10 来重置输出的进制系统。

结论

上面所提到的只是 bc 所能做到的基础。它还允许你为某些复杂的运算和程序定义函数、变量和循环结构。你可以在你的系统中将这些程序保存为文本文件以便你在需要的时候使用。你还可以在网上找到更多的资源,它们提供了更多的例子以及额外的函数库。快乐地计算吧!
分享到:
评论

相关推荐

    GNU BC FOR WINDOWS(命令行计算器-任意精度)

    windows 批处理的计算功能比较弱。有些情况下需要借助bc来进行更复杂的计算

    怎么样称得上是Linux下优秀的命令行计算器

    每个现代的Linux桌面发行版都预装着一个带有图形界面的计算器程序。不过如果你的工作区中全是命令行窗口,那么你一定会在其中的一个命令行窗口中处理一些数字相关的问题。或许你在寻找一款基于命令行的计算器程序。...

    在Linux命令行中使用计算器的5个命令详解

    大家好,我是良许。 在使用 Linux 时,我们有时会需要做一些计算,那么我们就可能需要用到计算器。在 Linux 命令行里,有许多计算器工具,这些命令行计算器可以...bc 的命令行选项中有一个可用的标准数学库,如果有相关

    X-Bc - a GUI to the shell calculator bc-开源

    X-Bc(以前为xbc)是命令行计算器bc的图形用户界面。 所有输入和输出均保持可见,可进行编辑和比较。 功能:三角函数,数论,指数函数,科学常数,素数...

    BC for Windows:BC v1.05(基本计算器)任意精度计算器语言-开源

    bc是一种通过语句的交互式执行来支持任意精度数字的语言。 首先,按照列出的顺序处理命令行中列出的所有文件中的代码。 处理完所有文件后,bc开始从标准输入中读取。 所有代码均在读取时执行。

    布尔:布尔代数计算器和助手

    目标最终目标是拥有一个命令行实用程序或解析器,它可以检查和显示布尔公式的减少量。 这样的会话可能看起来像: (B+(BC)) (B + 0)' =~> 0 // ok(B+(BC)) (B + 0)' =~> BB' =complement> 0 // ok(B+(BC)) (B + 0)' =...

    Tc calculator (extension)-crx插件

    从某种意义上说,它与BC命令行计算器非常相似,因为它没有按钮(例如在XCalc中),但是您只需键入要计算的表达式即可。 Tc使用JS进行评估,因此您几乎可以使用任何有效的JS代码。 您可以编写自己的函数库。 您可以在...

    超大位数计算程序

    1. 第一个操作数文件 A1.txt 2. 第二个操作数文件 A2.txt 3. VC6老版本程序 bc.exe 4. VC2015新版本程序 BigCom.exe 5. 新版乘法批处理 cheng.bat 6. 新版除法批处理 chu.bat 7. 新版加法批处理 jia.bat 8. 新版减法...

    基于hhww改进版的传统五笔输入法(新版支持WIN7)

    用“计算器”将“EE”用二进制查看,共八位每一位分别对应设置中的每一个选项。扩展选项只有第四第八项可以设置。 将04改为00即是Unicode ============================= Space参数就是空格是否强制上屏: 例如:两...

    基于hhww改进版的传统五笔输入法

    用“计算器”将“EE”用二进制查看,共八位每一位分别对应设置中的每一个选项。扩展选项只有第四第八项可以设置。 将04改为00即是Unicode ============================= Space参数就是空格是否强制...

    LINUX 24学时教程

    本书详细讲解了用Linux的图形配置工具配置Caldera OpenLinux,通过一个ppp与网络连接、使用K桌面环境、用StarOffice提高在家办公的效率、网络浏览、发传真、接收email及使用GIMP等图形工具。 24学时每次1小时的课程...

Global site tag (gtag.js) - Google Analytics