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.引言 作为程序员,必然会遇到这样的情况:不同的类具有共同的特征,至少看起来彼…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
