当前位置: 首页 > news >正文

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 清空整个栈。
  • 进制转换:使用 io 分别设置输入和输出的基数,以进行不同进制间的转换。
  • 帮助文档:如果不确定某个命令的作用,可以通过查阅 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 命令&#xff0c…...

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对象之间的连接与交互。我们就是使用这种方式实现了一个简单的异步调用。换而言之,信号与槽让我们可以不必考虑复杂的调用。只需要当我们需要在程序中表达:“希望在程序中通知一个事件而且按照我们设定的方式给出回应”的时候&#xf…...

单细胞配色效果模拟器 | 简陋版(已有颜色数组)

目的:假设你有一组颜色了,怎么模拟查看它们在单细胞DimPlot中的美学效果呢?要足够快,还要尽可能有模拟效果。 1. 尝试1: 随机矩阵,真的UMAP降维后绘图(失败) 造一个随机矩阵,使用S…...

面向对象编程中类与类之间的关系(一)

目录 1.引言 2."有一个"关系 3."是一个"关系(继承) 4.“有一个”与“是一个”的区别 5.not-a关系 6.层次结构 7.多重继承 8.混入类 1.引言 作为程序员,必然会遇到这样的情况:不同的类具有共同的特征,至少看起来彼…...

streamlit 实现 flink SQL运行界面

实现效果 streamlit flink-playground.py 文件如下: import streamlit as st import io import contextlib import sys import os import uuid import subprocess from jinja2 import Templatest.set_page_config(layout"wide")# 设置页面标题 st.title…...

鲸鱼优化算法(Whale Optimization Algorithm, WOA)原理与MATLAB例程

鲸鱼优化算法(Whale Optimization Algorithm, WOA)是一种基于鲸鱼捕食行为的智能优化算法。它模拟了座头鲸在狩猎时的“气泡网”捕食策略。 文章目录 1.适应度函数2. 更新公式2.1 突袭行为2.2 螺旋更新3.线性递减参数4. 边界处理 MATLAB 实现示例代码说明…...

MFC七段码显示实例

在MFC中添加iSenvenSegmentAnalogX控件,添加编辑框和按钮实现在编辑框中输入数字点击按钮后数字用七段码显示 1、在对话框中点击右键如下图添加控件和变量 2、在sevenDlg.h中添加代码 public: void ShowInd(int,double);3、在sevenDlg.cpp中添加代码 void CSe…...

【日常知识点】到底推不推荐用JWT?

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区:个人社区 💞 个人主页:个人主页 🙉 专栏地址: ✅ Java 中级 🙉八股文专题:剑指大厂,手撕 J…...

网络编程项目之FTP服务器

项目介绍 模拟FTP核心原理:客户端连接服务器后,向服务器发送一个文件。文件名可以通过参数指定,服务器端接收客户端传来的文件(文件名随意),如果文件不存在自动创建文件,如果文件存在&#xff0…...

SpringBoot02:第一个springboot程序

3、第一个springboot程序 3.1、准备工作 我们将学习如何快速的创建一个Spring Boot应用,并且实现一个简单的Http请求处理。通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。 我的环境准备: java version "…...

快速入门HTML

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗 如有错误,欢迎指出~ 目录 第一个html文件 标签 h1~h6 p >段落标签 br > 换行标签 img >图片标签 a >超链接标签 表格标签 表单标签 表单控件 form表单 ⽆语义标签:div&span 综…...

RabbitMQ是一个开源的消息代理和队列服务器

RabbitMQ是一个开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)协议实现,同时也支持其他消息协议如STOMP、MQTT等。作为一个可靠的消息传递服务,RabbitMQ在分…...

经典算法思想--并查集

前言 (最近在学习Java,所有函数都是用Java语言来书写的)前言部分是一些前提储备知识 在并查集(Union-Find)数据结构中,rank(中文称为“秩”)是用来表示树的高度或深度的一种辅助信息…...

挑战Java面试题复习第2天,百折不挠

挑战第 2 天 ArrayList和linkedList的区别HashMap和HashTable的区别Collection 与 Collections 的区别Java的四种引用泛型常用特点 ArrayList和linkedList的区别 底层数据结构: ArrayList:基于动态数组实现,支持快速随机访问。LinkedList&a…...

通过做政府门户网站的实验获得什么/手机百度登录入口

1、首先进入mysql的安装目录下的bin目录,例如我的是【C:\WINDOWS\System32\cmd.exe】2、接着输入cmd,回车3、在命令行中输入命令【mysql -hlocalhost -uroot -p 按回车键,输入密码】,其中【-h主机名 -u用户 -p密码】 4、成功进入界…...

网站的建设需要数据库/重庆seo扣费

2019独角兽企业重金招聘Python工程师标准>>> reduce 再看reduce的用法。Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算,其效果就是&am…...

团购网站怎么做推广/百度收录官网

报错:叫我们删除log4j-over-slf4j.jar, 选中项目 然后搜索对应的包,然后排除即可,我这边已经排除了,就ok了 ctrlF搜索哦! 版本问题,使用插件解决吧: https://yidajava.blog.csdn.net/article/details/103668676...

做三盛石材网站的公司/灰色词排名接单

转载自:https://www.cnblogs.com/bekeyuan123/p/6891875.html 数组的定义: // 3种定义方式int[] arr new int[5];int[] arr1 {1,2,3,4,5};int[] nums new int[]{1, 2, 3};long[] arr2 new long[6];String[] strs new String[5];// 数组可以存储引用…...

网站建设中最重要的环节是/拍照搜索百度识图

https://jingyan.baidu.com/article/4e5b3e1935c7f3d0901e24e2.html 1. 打印机相关 打印机左下角蓝色的wifi网络设置按钮,按一下,进入到wifi设置菜单,左右切换菜单到 “wifi 默认设置” 按ok (这一步应该是初始化打印机的网络环境&#xff1…...

网站后台文本编辑器/网推是什么

在编程界,Python是一种神奇的存在。有人认为,只有用Python才能优雅写代码,提高代码效率;但另一部分人恨不能把Python喷成筛子。那么,Python到底有没有用,为什么用Python找不到工作?Python到底能…...