分享一个命令行计算器-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(Basic Calculator)是GNU项目的一部分,旨在提供一个轻量级、灵活且功能强大的编程语言,尤其适用于数学计算...
`bc` 是一个任意精度计算器语言,能够处理包括浮点运算在内的多种运算,并且支持条件判断、循环等结构化编程特性。 #### 用途说明 `bc` 命令的主要功能有: 1. **浮点运算**:能够处理浮点数的加减乘除以及更复杂...
Linux下的优秀命令行计算器,尤其是GNU bc,是一个强大的工具,尤其适合那些经常在终端环境中工作的用户。GNU bc起源于70年代的Unix时代,起初是一个类似C语言的编程语言,随着时间的发展,它演变为今天的POSIX bc,...
在Linux操作系统中,`bc`是一个强大的命令行计算器程序,它允许用户进行算术运算、逻辑操作以及执行脚本。`bc`不仅支持基本的算术运算,还提供了丰富的数学函数和控制结构,使得它成为一个功能全面的计算环境。这份...
总结来说,X-Bc是bc命令行计算器的一个强大补充,它结合了图形化的交互方式和丰富的数学功能,是学习、教学和日常计算的好帮手。作为开源软件,它不仅具有高度的灵活性,还拥有活跃的社区支持,确保了软件的持续发展...
4. **预处理命令行文件**: 在启动BC时,用户可以指定一个或多个包含BC代码的文件。这些文件会被依次处理,代码在读取时立即执行。 5. **标准输入读取**: 当处理完所有命令行指定的文件后,BC会继续从标准输入读取...
`bc-1.06` 是一个经典的 `bc` 命令的源代码版本,它是一个交互式的、高度可移植的计算器语言,广泛应用于Linux系统中。`bc` 提供了一个强大的计算环境,支持浮点运算和复数,常用于数学计算和脚本编程。在这个源码包...
在Linux环境中,我们可以利用shell脚本实现一个简单的命令行计算器,这个计算器主要依赖于if-else语句来处理不同的运算符。在这个场景中,用户将输入两个数字和一个运算符,然后shell脚本会根据运算符执行相应的计算...
这将创建一个名为`bc-1.06.95`的目录,其中包含了源代码和其他相关的文件。 3. **编译与安装**:进入`bc-1.06.95`目录,然后按照README或INSTALL文件的指示进行配置、编译和安装。通常,这会涉及`./configure`、`...
在本实验项目“数据结构实验之复数计算器”中,我们主要关注的是如何利用C#编程语言设计并实现一个能够处理复数运算的计算器。复数由实部和虚部构成,例如3 + 4i,其中3是实部,4i是虚部,i是虚数单位,满足i² = -1...
`expr`是一个用于进行简单算术运算和字符串操作的命令行工具。它可以处理整数运算,并且支持字符串长度、子字符串提取等操作。 ##### 算术运算 - **加法**:`+` - **减法**:`-` - **乘法**:`\*` - **除法**:`/` ...
BC是一种轻量级的命令行计算器,它支持基本的算术运算以及一些编程结构,如循环和条件语句。BC++则是BC的增强版本,它提供了更多的功能和特性,使得它更适合于教学和学习编程基础知识,尤其是在C++编程环境中。 在...
在数据结构的学习中,复数计算器是一个很好的实践项目,可以深入理解数据类型的设计和算法的实现。云南大学软件学院通过这样的实验,旨在帮助学生巩固基础,提升编程能力。 复数由实部和虚部构成,形式上可以表示为...
总之,EVA是一个基于Rust构建的命令行计算器,具备REPL功能,为用户提供快速计算的便利。其开源性质和参与Hacktoberfest活动鼓励了社区参与和持续改进。通过深入研究其源代码,开发者可以学习到Rust编程和命令行应用...