Linux系统之dc计算器工具的基本使用
Linux系统之dc计算器工具的基本使用
- 一、DC工具介绍
- 二、dc命令的基本用法
- 2.1 dc命令的help帮助信息
- 2.2 dc命令基本用法
- 2.3 dc命令常用操作符
- 三、dc命令的基本使用
- 3.1dc命令的用法步骤
- 3.2 简单数学计算
- 3.3 通过文件来计算
- 3.4 使用--expression计算
- 3.5 使用dc命令进行高精度计算
- 3.6 使用echo方式计算
- 四、注意事项

一、DC工具介绍
1.dc是一种逆波兰表示法的计算器,它将所有运算符放在操作数之后。dc命令被用于Unix或Linux系统中,通常用于数学计算,具有高精度运算的特性。
2.dc命令可以执行各种算术运算,如加法、减法、乘法、除法和取模运算。它还可以执行位操作、逻辑运算和数学函数。除了常规的数学计算,dc还可以用作科学计算器和程序开发中的计算器。
二、dc命令的基本用法
2.1 dc命令的help帮助信息
使用–help选项查询dc命令的帮助信息
[root@server-01 ~]# dc --help
Usage: dc [OPTION] [file ...]-e, --expression=EXPR evaluate expression-f, --file=FILE evaluate contents of file-h, --help display this help and exit-V, --version output version information and exitEmail bug reports to: bug-dc@gnu.org .
- 可以使用man dc查询更多dc命令的帮助信息
man dc

2.2 dc命令基本用法
- dc命令的基本语法
dc [选项] [文件...]
- dc命令选项解释
-e, --expression=EXPR # 评估表达式
-f, --file=FILE # 从指定的文件中读取dc命令语句
-h, --help # 显示此帮助并退出
-V, --version # 显示版本信息
2.3 dc命令常用操作符
- 下面是dc命令的常用操作符
- p:打印栈顶元素
- n:把栈顶元素出栈
- q:结束dc的执行
- +:把栈顶两个数字相加,并把结果压入栈顶
- -:把栈顶两个数字相减,并把结果压入栈顶
- *:把栈顶两个数字相乘,并把结果压入栈顶
- /:把栈顶两个数字相除,并把结果压入栈顶
三、dc命令的基本使用
3.1dc命令的用法步骤
dc命令的基本用法如下:
打开终端并输入dc命令。
输入算术表达式,以回车键结束。
dc将计算表达式并显示结果。
输入q命令退出dc命令。
3.2 简单数学计算
下面是 dc 命令在命令行完成的计算 8 * 8 得出结果 64,并推出的过程。
$ dc 8 # 1. 输入数字8
8 # 2. 输入数字8
* # 3. 输入运算类型*表示乘
p # 4. 输入p得到计算结果
64
q # 5. 输入 q 退出 dc

计算加法,计算5+7,可以使用如下命令:
dc
5 7 +
p
q

| 命令 | 功能描述 |
|---|---|
p | 打印堆栈顶部的值,并以换行符结束语句。 |
n | 打印堆栈顶部的值,并以空语句结束行(不带换行符)。 |
f | 打印整个堆栈的内容,但不做任何更改。 |
P | 从堆栈顶部弹出值。 |
c | 清除整个堆栈。 |
d | 复制堆栈顶部的值并将其推入主堆栈。 |
r | 反转堆栈中顶部两个元素的顺序。 |
Z | 从堆栈中弹出值,计算其中的位数并压入该数字。 |
X | 从堆栈中弹出值,计算其中的小数位数并压入该数字。 |
z | 将堆栈长度推入堆栈。 |
i | 从堆栈中弹出值并将其用作输入基数。 |
o | 从堆栈中弹出值并将其用作输出基数。 |
k | 从堆栈中弹出值并使用它来设置精度。 |
I | 将当前输入基数的值推入堆栈。 |
O | 将当前输出基数的值压入堆栈。 |
K | 将当前精度值压入堆栈。 |
3.3 通过文件来计算
- 编辑测试文件test.dc
[root@server-01 ~]# cat test.dc
13 11 * p
- 使用文件计算
dc test.dc

3.4 使用–expression计算
使用–expression计算,这个表达式计算的结果是将40和10相乘,再加上8的值,最后将结果打印(p)。
dc --expression="40 10 *8 + p"

3.5 使用dc命令进行高精度计算
dc命令默认使用整数进行计算,因此如果进行除法运算时除不尽,结果将会被截断为整数部分。在进行高精度计算时,需要使用dc命令的scale选项来指定小数部分的精度。
- 例如,要计算4除以3的结果并保留4位小数,可以使用以下命令:
root@cloud ~]# echo "4 k 4 3 / p" | dc
1.3333
- 使用–expression 选项,计算10除以3,“5k”表示将计算结果保留五位小数。
dc --expression=" 10 3 5k / p "

3.6 使用echo方式计算
使用echo和管道符方式来使用dc命令,如下所示:
[root@server-01 ~]# echo "4 3 + p " | dc
7
[root@server-01 ~]# echo "10 3 5k / p " | dc
3.33333
四、注意事项
- 遵循逆波兰表示法(RPN):在输入计算表达式时,操作数应先于操作符。
- 使用
p命令打印结果:执行完运算后,使用p命令可以将栈顶的结果输出到屏幕上。 - 设置小数点后的位数:通过
k命令后跟一个数字来设置小数点后的精度,例如4 k设置四位小数。 - 管理栈上的数据:使用
d复制栈顶元素,r交换栈顶两个元素,c清空整个栈。 - 进制转换:使用
i和o分别设置输入和输出的基数,以进行不同进制间的转换。 - 帮助文档:如果不确定某个命令的作用,可以通过查阅 man dc 来获取详细信息。
相关文章:
Linux系统之dc计算器工具的基本使用
Linux系统之dc计算器工具的基本使用 一、DC工具介绍二、dc命令的基本用法2.1 dc命令的help帮助信息2.2 dc命令基本用法2.3 dc命令常用操作符 三、dc命令的基本使用3.1dc命令的用法步骤3.2 简单数学计算3.3 通过文件来计算3.4 使用--expression计算3.5 使用dc命令进行高精度计算…...
使用Python计算相对强弱指数(RSI)进阶
使用Python计算相对强弱指数(RSI)进阶 废话不多说,直接上主题:> 代码实现 以下是实现RSI计算的完整代码: # 创建一个DataFramedata {DATE: date_list, # 日期CLOSE: close_px_list, # 收盘价格 }df pd.DataF…...
vue 解决:npm ERR! code ERESOLVE 及 npm ERR! ERESOLVE could not resolve 的方案
1、问题描述: 其一、需求为: 想要安装项目所需依赖,成功运行 vue 项目,想要在浏览器中能成功访问项目地址 其二、问题描述为: 在 package.json 文件打开终端平台,通过执行 npm install 命令,…...
Android 原生开发与Harmony原生开发浅析
Android系统 基于Linux ,架构如下 底层 (Linux )> Native ( C层) > FrameWork层 (SystemService) > 系统应用 (闹钟/日历等) 从Android发版1.0开始到现在15,经历了大大小小的变革 从Android6.0以下是个分水岭,6.0之前权限都是直接卸载Manifest中配置 6.0开始 则分普…...
VIVO售后真好:屏幕绿线,4年免费换屏
只要亮屏就有。这也太影响使用了。 本来想换趁机换手机,看了VIVO发布的X200,决定等明年的X200 ULTRA。手头这个就准备修。 查了一下价格,换屏1600,优惠1100。咸鱼上X70 PRO也就800。能不能简单维修就解决呢?于是联系…...
数据类型【MySQL】
文章目录 建立表查看表删除表数据类型floatcharvarcharchar&&varchar 时间日期类型enum和setenum和set查找 建立表 mysql> create table if not exists user1(-> id int ,-> name varchar (20) comment 用户名 ,-> password char (32) comment 用户名的…...
流媒体协议.之(RTP,RTCP,RTSP,RTMP,HTTP)(二)
继续上篇介绍,本篇介绍一下封装RTP的数据格式,如何将摄像头采集的码流,音频的码流,封装到rtp里,传输。 有自己私有协议例子,有rtp协议,参考代码。注意不是rtsp协议。 一、私有协议 玩过tcp协议…...
在 Kakarot ZkEVM 上使用 Starknet Scaffold 构建应用
Starknet 和 EVM 我们所知的智能合约世界一直围绕着以太坊虚拟机(EVM),其主要语言是 Solidity。 尽管 Starknet 通过 STARKs 为以太坊开辟了新的可能性,但其缺点是它有一个不同的虚拟机 (CairoVM),这要求开发者学习 …...
DBeave如何连接达梦数据库,设置达梦驱动,真酷
前言 我们在使用DBeaver连接数据库时,默认可以连接常用的数据库,如mysql数据库,postgresql数据库,oracle数据库。但是,我们的国产数据库达梦数据库,默认在IDEA里面没有驱动,所以还得配置一下才…...
2024年全球 MoonBit 编程创新赛-零基础早鸟教程-使用wasm4八小时开发井子棋小游戏
前言 本篇文章主要分享 “2024年全球 MoonBit 编程创新赛 游戏赛道”参赛过程中九宫棋游戏的开发技巧和心得。以此抛砖引玉。首先介绍下 MoonBit。 月兔语言 MoonBit 是一个用于云计算和边缘计算的 WebAssembly 端到端的编程语言工具链。 您可以访问 https://try.moonbitlang.…...
机器学习4
第3章 线性模型 3.1 线性模型的基本形式 3.1.1 线性模型的核心公式 线性模型通过属性的线性组合进行预测,其核心公式为: [ f(x) \omega_1 X_1 \omega_2 X_2 … \omega_d X_d b ] 其中: ω 1 , ω 2 , . . . , ω d \omega_1, \omega_…...
Python数值计算(33)——simpson 3/8积分公式
1. 背景知识 既然前的Simpson可以通过使用三个点构造二次曲线近似积分,那么,如果点数增加到了4个,然后不就可以构造三次多项式的曲线,实现对目标值的积分吗? 如果采用和上一节介绍的同样的方法,我们可以推…...
<项目代码>YOLOv8路面垃圾识别<目标检测>
YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…...
Java中的注解(白金版)
Spring中常用注解 Springboot中@Validated注解的使用 Swagger中常用注解 @Validate...
actor模型
Actor模型(Actor Model)是一种用于并发计算的数学模型和编程概念,它最早由计算机科学家 Carl Hewitt 等人提出,用于简化对多线程或并发系统的设计和实现。Actor模型在并发编程、分布式系统、消息传递系统等领域具有广泛应用。 核…...
合约门合同全生命周期管理系统:企业智能合同管理的新时代
合约门合同全生命周期管理系统:企业智能合同管理的新时代 1. 引言 随着现代企业的快速发展,合同管理的复杂性日益增加。无论是采购合同、销售合同还是合作协议,合同管理已成为企业运营中至关重要的一环。传统的手工合同管理方式往往效率低下…...
vscode如何debug环境配置?torchrun与deepspeed库又该如何配置?
文章目录 前言一、vscode命令参数传递1、验证参数py文件2、第一种vscode调用方法(launch.json配置)3、第二种vscode调用方法(launch.json配置)二、deepspeed运行py文件代码(deepspeed_test.py)三、deepspeed命令调用(无法debug)四、deepspeed使用vscode进行调试(能debug)五、vs…...
Qt元对象系统 —— 信号与槽
信号与槽讨论的是Qt对象之间的连接与交互。我们就是使用这种方式实现了一个简单的异步调用。换而言之,信号与槽让我们可以不必考虑复杂的调用。只需要当我们需要在程序中表达:“希望在程序中通知一个事件而且按照我们设定的方式给出回应”的时候…...
单细胞配色效果模拟器 | 简陋版(已有颜色数组)
目的:假设你有一组颜色了,怎么模拟查看它们在单细胞DimPlot中的美学效果呢?要足够快,还要尽可能有模拟效果。 1. 尝试1: 随机矩阵,真的UMAP降维后绘图(失败) 造一个随机矩阵,使用S…...
面向对象编程中类与类之间的关系(一)
目录 1.引言 2."有一个"关系 3."是一个"关系(继承) 4.“有一个”与“是一个”的区别 5.not-a关系 6.层次结构 7.多重继承 8.混入类 1.引言 作为程序员,必然会遇到这样的情况:不同的类具有共同的特征,至少看起来彼…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...
