Linux编程实践 bc:unix 的计算器

2024-01-19 01:32

本文主要是介绍Linux编程实践 bc:unix 的计算器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Unix 系统中的 bc 命令是执行一个基于字符的计算器程序。

目录

 

bc 命令

处理大整数

可编程的 bc

什么是 dc

内部如何操作

bc 与 dc 之间的关系


bc 命令

bc 命令是任意精度计算器语言,通常在linux下当计算器用。

它类似基本的计算器, 使用这个计算器可以做基本的数学运算。

常用的运算:

  • + 加法
  • - 减法
  • * 乘法
  • / 除法
  • ^ 指数
  • % 余数

举例:

2+3*4+5*10
64

bc 会显示计算结果,而且知道先算乘法在做加法。退出 bc,Ctrl+D

处理大整数

bc 的一个重要特点是,可以处理很大的整数,如:

999999999999999999999999*888888888888888888888888
888888888888888888888887111111111111111111111112

还可以通过幂运算来运算:

3333^44
10110061584495640995005898489182285794822405288498070703365111794769\
43890411064925291154381468890721948142209004688381870355409155411563\
21805747562427309521

可编程的 bc

bc 是可以编程的,可以定义变量,有逻辑判断和循环结构,语法与 c 语言类似,比如:

x = 3
if(x == 3){y = x*3;
}y
9

从严格意义来说,bc 不做任何计算,主要依赖于 dc

什么是 dc

dc是一个支持非匹配精度算法的逆波兰台式计算器。

它还允许您定义和调用宏。通常dc从标准输入读取;

如果给它任何命令参数,它们就是文件名,dc在从标准输入读取之前读取并执行文件的内容。所有正常输出为标准输出;所有误差输出为标准误差。反向波兰计算器将数字存储在堆栈上。输入一个数字将其推到堆栈上。算术运算从堆栈中弹出参数并推送结果。如计算 2+3 的值,对应的逆波兰表达式为:23+,就是说操作符在后面,也成后缀表达式。

比如:

2
3
+
p
5

必须是一个数字占用一行,比如输入 2 换行,输入 3换行,输入+换行,p 是为了打印结果。输出的意思。

内部如何操作

先将 2 入栈,在将 3 入栈,然后将栈顶的两个数出站,计算他们的和,并将结果入栈,p 是为了将栈顶元素打印出来。dc 本身是一个基于栈的计算器。

bc 与 dc 之间的关系

bc 是 dc 的预处理器,他将用户输入的表达式转换成逆波兰表达式,然后通过一个成为管道的通信程序交给 dc:

对普通用户来说,bc 就是计算器。

这篇关于Linux编程实践 bc:unix 的计算器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/620888

相关文章

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

使用Python实现一个简易计算器的新手指南

《使用Python实现一个简易计算器的新手指南》计算器是编程入门的经典项目,它涵盖了变量、输入输出、条件判断等核心编程概念,通过这个小项目,可以快速掌握Python的基础语法,并为后续更复杂的项目打下... 目录准备工作基础概念解析分步实现计算器第一步:获取用户输入第二步:实现基本运算第三步:显示计算结果进

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面