大家都知道,windows下有个计算器工具,我们在工作生活中经常使用到它。但是,你可知Linux下也同样有个计算器吗?

当然,良许说的是命令行下的计算器工具,而不是界面型的计算器。良许是Linux应用开发工程师,平时基本是在命令行下工作,所以对于界面类的操作良许也不是非常擅长。

启动计算器

启动这个命令行计算器很简单,只需在终端下输入bc即可。bc是英语basic calculator的缩写。退出计算器也很简单,只需输入quit即可。

选项

当然,这个计算器也是可以带选项的,常用的选项如下:

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

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

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

-q:不打印正常的GNU bc环境信息;

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

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

基本运算

启动计算器之后,就可以在里面进行计算了。基本的运算如下:

+ 加法

- 减法

* 乘法

/ 除法

^ 指数

% 余数

当然,如果只支持这些运算的话,那也太小儿科了,它的强大之处还在后头。

表达式运算

如果要计算一个表达示,直接在bc里输入表达式即可。bc会将变量存储,其它表达式也可以直接使用这个变量。

进制切换

作为一个程序员,我们经常与二进制,十进制,十六进制进行打交道,bc当然也支持这些操作。输入和输出的数系基分别存储在ibase和obase变量中,默认值为10,有效的数值是2到16。也就是说,我们除了常规的2、8、10、16进制,还可以使用3、5、7、9等进制。

但是,在进行设置的时候,一定要先设置obase,再设置ibase。因为如果先设置ibase的话,再设置obase时,obase等号后面的数字就会被认为是ibase设置的进制值。

精度调整

bc默认的精度是0,也就是说,bc是默认以整数的方式进行存储。我们可以通过设置scale这个变量来进行调整精度。

使用内置函数

除了简单的算术操作符,bc还通过外部的数学函数库来提供许多高级的数学函数。此时,应该使用-l选项。常用的函数如下:

N的二次方根 sqrt(N)

X的正弦(X是弧度) s(X)

X的余弦(X是弧度) c(X)

X的反正弦(返回值是弧度) a(X)

X的自然对数: l(X)

X的指数对数: e(X)

编程运算

作为一个计算语言,bc支持简单的声明(变量赋值、中断、返回等)、复合语句(if、while、for loop等)和自定义函数。这个功能就比较高级,更详细的内容可以参考官方指南。

通过管道操作

直接上例子:

也能够使用HERE 命令:

能够使用内置的变量 last 引用上一次的结果:

last 也能够用 点号取代:

非交互界面下使用bc

到目前为止,我们一直在交互界面下使用bc。不过更加流行的使用bc的方法是在没有交互界面的脚本中运行bc。这种情况下,你可以使用echo命令并且借助管道来向bc发送输入内容。

运行结果:

一个简单的计算三角形面积的程序

进行结果:

结语

bc这个命令行计算器非常强大,至少比window自带的计算器要强大很多。这个工具特别适合linux开发人员,在无需打开手机计算器的情况下,很方便的就可以进行数学运算。同时,也可以编写脚本进行更复杂的数学运算。更强大的功能还有待你的发现!

码字不易,如果您觉得有帮助,麻烦点个赞再走呗~

-----------------

公众号【良许Linux】,一个有爱的公众号!

干货分享 · 资源共享 · 认知提高 · 英语学习

用yacc编写的算术运算计算器_Linux里隐藏的计算器,你知道它的奥秘吗?相关推荐

  1. 用yacc编写的算术运算计算器_详细的mac计算器操作技巧+快捷键分享

    我们的mac自带的计算器并不只可以应用于简单的计算,还有很多强大的实用功能你知道吗?今天小编就来带你解锁这些计算器的新功能.并有快捷键奉上~ 使用"计算器"执行基本计算.高级计算或 ...

  2. Linux里隐藏的计算器,你知道它的奥秘吗?

    大家都知道,windows下有个计算器工具,我们在工作生活中经常使用到它.但是,你可知Linux下也同样有个计算器吗? 当然,良许说的是命令行下的计算器工具,而不是界面型的计算器.良许是Linux应用 ...

  3. linux计算器保存文件,Linux里隐藏的计算器,你知道它的奥秘吗?

    大家都知道,windows下有个计算器工具,我们在工作生活中经常使用到它.但是,你可知Linux下也同样有个计算器吗? 当然,良许说的是命令行下的计算器工具,而不是界面型的计算器.良许是Linux应用 ...

  4. 用yacc编写的算术运算计算器_10天学会四则运算小计算器设计之第5天

    写在前面的话 我大学本科学的是测控专业,2012年考取首都师范大学物理系研究生.我从未学习过数字电路设计,对FPGA和Verilog语言没有任何概念,更没有设计数字电路系统的基础和经验,也从未自己动手 ...

  5. 用yacc编写的算术运算计算器_如何用纯机械实现乘除运算,这是个问题

    在步进计算器诞生之后的两百多年中,机械计算之曲始终在莱布尼茨定好的基调上演奏.不难发现,两百年中的制造工艺在不断进步,机器的可靠性也不断提高,而计算原理却始终没有改进.尽管各路"莱系&quo ...

  6. python输出一首诗_Python里隐藏的 诗

    在 Python 的Lib目录里有一个:this.Py (或者在交互式解释器中输入import this) 它其实是隐藏的一首诗 The Zen of Python, by Tim Peters &l ...

  7. Java制作一个盒子程序_编写一个简单的Java程序,模拟计算器的功能。

    提问:编写一个简单的Java程序,模拟计算器的功能. 网友回答: 程序参考: import java.awt.*; import java.awt.event.ActionEvent; import ...

  8. centos 计算器_Linux学习之CentOS(十五)--Linux常用命令之bc、man、shutdown...

    在写这篇随笔时,翻看了一下上一篇随笔的写作日期,发现已经是4月8号了,时间已经过了11天了!!!过了这么久没有更新Linux学习系列的随笔了,是因为我又松懈了Linux的学习了吗?不是的!!!是因为最 ...

  9. 怎么用计算机玩超级玛丽,玩家在《超级马里奥制造2》里做出了计算器 计算过程太神奇...

    原标题:玩家在<超级马里奥制造2>里做出了计算器 计算过程太神奇 在<超级马里奥制造2>里,你不仅能够玩到各种极具创意的关卡,你甚至还能玩到计算器,就像下面这个视频中演示的这样 ...

最新文章

  1. 10个数冒泡排序流程图_C语言 | 冒泡排序
  2. 中文版示例代码浏览器for Windows 8
  3. 娱乐社交,玩票大的!2021网易云信“融合通信开发者大赛”决赛名单公布!
  4. 设计模式(七)适配器模式(Adapter Pattern)
  5. HBuilder 模拟器连接默认端口
  6. 假如人类长出翅膀,会变成这种怪样子
  7. python2与python3,Python2和Python3的10大区别
  8. 蓝桥杯-明码 bitset初识
  9. 网络协议 18 - CDN:家门口的小卖铺
  10. 【2019南昌邀请赛网络赛 J】Distance on the tree【边权树剖+主席树】
  11. 地图标识符号大全_资源小结:中国分省地图大全(10.23版)
  12. 不符合c语言表达式,C语言的基本语法有哪些?,已知各变量的类型说明如下,则以下不符合C语言语法的表达式是...
  13. freeimage 安装错误
  14. java天猫精灵_教你玩转天猫精灵:把设备接入天猫精灵
  15. gimp 架构_[翻译]如何编写GIMP插件(二)
  16. [GYCTF2020]Easyphp
  17. 日分发量破8.6亿,OPPO如何帮助开发者突破流量增长瓶颈
  18. python入门和使用
  19. 百度AI的时代献礼:与央视搭AI秀台,让万物智能样貌清晰可见
  20. windows2008物理机(GPT分区)迁移至虚拟机Hyper-V无法启动的解决方案

热门文章

  1. MaxCompute(原ODPS)使用总结-初级篇
  2. iptables如何添加容许某个端口的访问
  3. PHP中header用法详解带范例(转)
  4. 17、有名管道与无名管道之间的区别
  5. 【opencv系列06】OpenCV4.X滑动条操作
  6. Android 中intent传递序列化信息(传递类)
  7. SpringCloud教程-注册中心(Consul)(SpringCloud版本Greenwich.SR4)
  8. win cmd rmdir /s递归删除目录
  9. idea安装golang插件(仅针对2017年之前的idea版本)
  10. Python3可变字符串代码实现