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.引言 作为程序员,必然会遇到这样的情况:不同的类具有共同的特征,至少看起来彼…...
一文读懂对称加密与非对称加密:核心区别、应用场景与实战避坑
在数字化时代,数据安全是所有产品和系统的“生命线”。我们每天接触的手机支付、网页浏览、社交聊天、文件传输,背后都藏着加密技术的身影。而加密技术的核心,离不开两大主角——对称加密与非对称加密。 很多人对这两种加密方式的认知&#…...
OpenClaw模型微调指南:用Qwen3.5-9B-AWQ-4bit优化专业领域识别
OpenClaw模型微调指南:用Qwen3.5-9B-AWQ-4bit优化专业领域识别 1. 为什么需要专业领域的模型微调 上周我在处理一批医疗影像报告时,发现OpenClaw默认的Qwen3.5模型对专业术语的识别准确率只有60%左右。当遇到"冠状动脉CTA"这样的专业描述时&…...
Windows Defender 彻底移除工具:2025年系统优化终极指南
Windows Defender 彻底移除工具:2025年系统优化终极指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirrors/w…...
别再只会用assign了!手把手教你用Verilog for循环实现4位乘法器(附Modelsim仿真对比)
从assign到for循环:Verilog乘法器的硬件思维进阶指南 在FPGA开发中,乘法器是最基础却又最容易被忽视的运算单元。许多初学者会直接使用assign out a*b;这样的简洁写法,却很少思考这行代码背后究竟生成了怎样的硬件电路。本文将带你从硬件思维…...
Win11Debloat系统优化工具使用指南
Win11Debloat系统优化工具使用指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and customize your Windows experien…...
AI辅助开发新思路:让快马AI理解自然语言,自动生成分区数据智能查询系统
今天想和大家分享一个最近用AI辅助开发的实用工具——中科院分区智能查询系统。这个项目的核心思路是让AI理解科研人员的自然语言查询需求,自动转换成数据库操作,大大简化了科研数据检索的流程。 项目背景与需求分析 作为一名经常需要查阅期刊信息的科…...
基于STM32LXXX的数字电位器(AD5245BRJZ50-RL7)驱动应用程序设计
一、简介: D5245BRJZ50-RL7 是一款 256 抽头、50kΩ 的 IC 数字电位器,采用 SOT-23-8 封装,非常适合在 STM32Lxxx 平台上用于需要高精度、低功耗调节的应用,如传感器校准或电源调节。 二、主要技术特性: 基本特性:单通道、256 位、50kΩ 线性电阻,30% 的精度足以满足一…...
2025届毕业生推荐的五大AI学术方案推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 人工智能技术迅猛发展,给毕业论文写作带来全新范式,借助自然语言处理…...
XZ1820A输入电压6-90V 输出电压ADJ(0.8V-50V) 输出电流2A
这是一款单片集成可设定输出电流的开关型降压恒压驱动器,可工作在宽输入电压范围具有优良的负载和线性调整度。安全保护机制包括每周期的峰值限流、软启动、过压保护和温度保护,带短路保护。保护点150度的温度过热保护,较高占空比大于92%。压差最小2V左右…...
Super Qwen Voice World生产环境部署:Docker镜像构建与GPU透传配置
Super Qwen Voice World生产环境部署:Docker镜像构建与GPU透传配置 1. 引言 想象一下,你开发了一个超酷的复古像素风语音设计工具,用户只需要输入文字和语气描述,就能生成各种情绪饱满的AI配音。这个工具在本地测试时运行完美&a…...
