算术运算(这么简单?进来坐坐?)

先热热身

        算术运算,也称为四则运算,包括加法、减法、乘法和除法。此外,算术运算还包括乘方和开方。

        在算术中,加减被视为一级运算,乘除被视为二级运算,乘方和开方被视为三级运算。在一道算式中,如果有几级运算存在,应先进行高级运算再进行低一级的运算。例如,3+22×4应先计算乘法,然后计算加法。如果只有同级运算,则按从左至右的顺序进行。如果算式中有括号,应先计算括号内的部分,再按照上述规则进行计算。例如,(3+2)×4应先计算括号内的加法,然后进行乘法。

        以下是常见的算术运算:

        加法(Addition): 将两个或多个数相加,得到它们的和。例如,3 + 5 = 8。

        减法(Subtraction): 从一个数中减去另一个数,得到它们的差。例如,7 - 4 = 3。

        乘法(Multiplication): 将两个或多个数相乘,得到它们的积。例如,2 × 6 = 12。

        除法(Division): 将一个数除以另一个数,得到它们的商。例如,8 ÷ 2 = 4。

二进制算术运算法则

        二进制算术运算是在二进制数字系统中执行的运算。在二进制中,只有两个数字,0和1。

二进制加法

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10(二进制中的2,写作0,进位到下一位)

例如:

 1101   (13)

+1010   (10)

----

10111   (23)

二进制减法

0 - 0 = 0

1 - 0 = 1

1 - 1 = 0

如果需要借位,从高位借1

例如:

 1101   (13)

-1010   (10)

----

  11    (3)

二进制乘法

0 × 0 = 0

0 × 1 = 0

1 × 0 = 0

1 × 1 = 1

例如:

  1101   (13)

 ×1010   (10)

----

 11010   (13 × 2 = 26)

11010    (13 × 10 = 130)

----

10011110 (143)

二进制除法

1 ÷ 1 = 1

0 ÷ 1 = 0

1 ÷ 0 = 无穷大(不合法,因为除数不能为0)

如果需要,可以使用小数和继续除法

例如:

11010   (26)

÷ 101   (5)

----

  101    (5)

  -101

  ----

    100   (4)

    -100

    ----

      0   (0)

注意:在计算机中,二进制运算通常与固定的位数和溢出处理有关。

机器数的运算

        机器数是计算机中用来表示数字的二进制形式。在机器数的加减运算中,通常需要考虑溢出和进位的问题。

机器数的加法运算

1、从最低位开始逐位相加,考虑进位。

2、记录每一位相加的结果,以及是否有进位。

3、将进位加到下一位相加的结果中。

4、重复这个过程,直到所有位都相加完毕。

机器数的减法运算

1、从最低位开始逐位相减,考虑借位。

2、记录每一位相减的结果,以及是否需要借位。

3、如果需要,从高位借1,并继续减法。

4、重复这个过程,直到所有位都相减完毕。

补码的运算法则

补码加法

1、逐位相加: 从最低位开始,对两个补码数的对应位进行二进制加法,包括进位。

2、忽略最高位的进位: 在加法过程中,忽略最高位的进位。

3、溢出处理: 如果相加的两个正数得到负数结果,或者两个负数得到正数结果,发生了溢出。溢出时,结果超过了补码能表示的范围,产生错误的结果。

4、最高位的溢出: 如果最高位有进位(溢出),则将该位丢弃。这是因为最高位表示的是符号位,进位表示溢出,所以最高位的溢出是不需要保留的。

5、结果为补码形式: 最终的结果是一个补码,可以直接在计算机中表示。

补码加法的例子

例如,对于两个4位二进制补码数的加法:

    1101   (-3)

+  1010   (-6)

--------

   10111   (-9)

在这个例子中,逐位相加得到的结果是 10111,最高位有进位,因此最终结果是 -9 的补码形式。

补码的加法运算遵循这些规则,而在实际计算机系统中,硬件和软件都支持补码运算。

补码减法

        补码减法是对两个补码数进行相减的过程。补码的减法可以通过将减法问题转换为加法问题来处理

补码减法步骤

1、取负数的补码: 将减数(被减数)的补码计算出来,即将每一位取反(0变成1,1变成0),然后加1。

2、将减法转换为加法: 将减法问题转换为对两个补码数的加法问题。这相当于将减法问题转化为加上减数的相反数。

3、使用补码加法规则进行相加: 对转换后的两个补码数进行逐位相加,包括进位,最后忽略最高位的进位。

4、检查溢出: 检查最高位的进位,如果发生了溢出,说明结果超出了补码的表示范围,产生了错误的结果。

5、结果为补码形式: 最终的结果是一个补码,可以直接在计算机中表示。

补码减法的例子

        例如,对于两个4位二进制补码数的减法:

    1101   (-3, 被减数)

-  1010   (-6, 减数)

--------

   10011   (3, 结果)

        在这个例子中,我们首先计算减数的补码,即将 1010 取反得到 0101,然后加1得到 -1010。接着,我们将减法问题转化为加法问题,对被减数 1101 和 -1010 进行相加,得到结果 10011,即为3的补码形式。最高位没有进位,没有发生溢出。

机器数的乘法运算

机器数乘法步骤

1、从最低位开始,对每一位进行乘法。

2、将每一位的乘积相加,得到最终结果。

例子:

    1101   (13)

×  1010   (10 )

-------

   11010   (13 × 2 = 26 )

 11010    (13 × 10 = 130 )

-------

 10011110 (143)

机器数的除法运算

机器数除法步骤

1、从最高位开始,将被除数逐位除以除数。

2、如果被除数小于除数,商的当前位为0,继续处理下一位。

3、如果被除数大于等于除数,将除数放到被除数上方,并减去。商的当前位为1。

4、重复这个过程,直到所有位都处理完毕。

例子:

   11010   (26, 被除数)

÷  101   (5, 除数)

-------

     101    (5, 商)

     -101

     ----

       100   (4)

       -100

       ----

         0   (0)

        在机器数的乘除运算中,需要特别注意除数不能为0的情况,因为除以0是不合法的。此外,在计算机中,通常需要考虑位数的溢出和结果的精度问题。

浮点数运算

        浮点数在计算机中以二进制形式表示,通常由两个部分组成:尾数(mantissa)和指数(exponent)。这种表示方式称为浮点数表示法,主要用于处理实数的近似值。在 IEEE 754 标准中,浮点数的表示有单精度和双精度两种形式,分别为32位和64位。

IEEE 754 单精度浮点数表示:

符号位(1位): 表示浮点数的正负。

指数位(8位): 用于存储指数部分,通过偏移值来表示实际指数。

尾数位(23位): 存储浮点数的尾数部分,通常称为尾数或者尾数部分。

例如,一个单精度浮点数的表示如下:

符号位0
指数位10000011
尾数位10110111000000000000000
符号位指数位尾数位01000001110110111000000000000000

        在这个例子中,符号位为0,指数位为10000011(二进制),尾数位为10110111000000000000000(二进制)。

IEEE 754 双精度浮点数表示:

符号位(1位): 表示浮点数的正负。

指数位(11位): 用于存储指数部分,通过偏移值来表示实际指数。

尾数位(52位): 存储浮点数的尾数部分,通常称为尾数或者尾数部分。

例如,一个双精度浮点数的表示如下:

符号位

0

指数位

10000000001

尾数位

1011011100000000000000000000000000000000000000000000
符号位指数位尾数位0100000000011011011100000000000000000000000000000000000000000000

在这个例子中,符号位为0,指数位为10000000001(二进制),尾数位为1011011100000000000000000000000000000000000000000000(二进制)。

        这样的浮点数表示法允许计算机用二进制形式来表示很大范围的实数,但由于二进制不能精确表示一些十进制小数,可能会存在精度损失。在程序设计中,特别是涉及精确计算的情况下,需要小心处理浮点数运算可能引起的误差。

浮点加法运算

        浮点加减运算涉及对浮点数进行加法和减法操作。浮点数通常由两个部分组成:尾数(mantissa)和指数(exponent)。

1、对齐小数点: 确保两个浮点数的小数点对齐,即调整它们的指数使之相同。

2、尾数相加: 将对齐后的尾数进行二进制加法。注意处理可能的进位。

3、规格化: 确保尾数的最高位是1。如果相加后的尾数不规格化,需要左移一位并相应地增加指数。

4、溢出和舍入: 处理溢出情况,同时进行舍入操作,确保结果在浮点数表示的范围内。

5、更新指数: 更新结果的指数部分。

6、检查和处理特殊情况: 检查是否有零、无穷大、NaN(Not a Number)等特殊情况,并进行相应处理。

浮点减法运算

1、减法运算可以通过将减数取负数,然后将减法问题转化为加法问题来处理。具体步骤如下:

2、取负数: 将减数的符号位取反,即得到减数的负数。

3、使用浮点加法: 将被减数和取负后的减数进行浮点加法运算。

4、检查和处理特殊情况: 检查是否有零、无穷大、NaN等特殊情况,并进行相应处理。

        浮点数运算可能面临精度损失和舍入误差,因此在编写程序时,应当小心处理浮点数运算可能引起的问题。一些编程语言和库提供了专门的工具和函数来处理浮点数运算的精度和误差。

浮点乘法运算

        浮点乘除运算涉及对浮点数进行乘法和除法操作。浮点数通常由尾数(mantissa)和指数(exponent)两部分组成。

1、尾数相乘: 将两个浮点数的尾数进行二进制乘法。

2、规格化: 对乘法结果进行规格化,确保尾数最高位是1。

3、指数相加: 将两个浮点数的指数相加,得到新的指数。

4、溢出和舍入: 处理可能的溢出情况,并进行舍入操作,确保结果在浮点数表示的范围内。

5、检查和处理特殊情况: 检查是否有零、无穷大、NaN等特殊情况,并进行相应处理。

浮点除法运算

1、尾数相除: 将被除数的尾数除以除数的尾数。

2、规格化: 对除法结果进行规格化,确保尾数最高位是1。

3、指数相减: 将被除数的指数减去除数的指数,得到新的指数。

4、溢出和舍入: 处理可能的溢出情况,并进行舍入操作,确保结果在浮点数表示的范围内。

5、检查和处理特殊情况: 检查是否有零、无穷大、NaN等特殊情况,并进行相应处理。

        在浮点数运算中,同样需要考虑精度损失和舍入误差。特别是在比较浮点数时,应当避免直接使用等号,而是使用一个小的容忍度范围来判断它们是否相等。

电脑计算器

        电脑常用的计算器:标准计算器、科学计算器、绘图、程序员、日期计算

        (........一言难尽,喝口茶,不想写了就到这吧)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/227006.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GDPU 数据结构 天码行空13

文章目录 一、【实验目的】二、【实验内容】三、实验源代码四、实验结果五、实验总结 一、【实验目的】 (1) 理解插入排序算法的实现过程; (2)理解不同排序算法的时间复杂度及适用环境; (3)了解算法性能…

华为数通---配置Smart Link负载分担案例

定义 Smart Link,又叫做备份链路。一个Smart Link由两个接口组成,其中一个接口作为另一个的备份。Smart Link常用于双上行组网,提供可靠高效的备份和快速的切换机制。 目的 下游设备连接到上游设备,当使用单上行方式时&#x…

算能 MilkV Duo开发板实战——opencv-mobile (迷你版opencv库)的移植和应用

前言 OpenCV是一种开源的计算机视觉和机器学习软件库,旨在提供一组通用的计算机视觉工具。它用于图像处理、目标识别、人脸识别、机器学习等领域,广泛应用于计算机视觉任务。 OpenCV-Mobile是OpenCV库的轻量版本,专为移动平台(A…

服务器感染了.DevicData-D-XXXXXXXX勒索病毒,如何确保数据文件完整恢复?

引言: 勒索病毒成为网络安全的严峻挑战,而最新的.DevicData-D-XXXXXXXX勒索病毒更是引起广泛关注。本文将深入介绍.DevicData-D-XXXXXXXX勒索病毒的特征,提供恢复被其加密的数据文件的方法,并分享预防措施,以确保您的数…

单细胞seurat-细胞比例分析-画图详细教程

大家好,今天我们来画单细胞中最简单的细胞比例图~ 1.老规矩,先加载pbmc数据 dir.create("~/gzh/细胞比例") setwd("~/gzh/细胞比例")subset_datareadRDS("~/gzh/pbmc3k_final.rds") table(stringr::str_split(string c…

Bounding boxes augmentation for object detection

Different annotations formats Bounding boxes are rectangles that mark objects on an image. There are multiple formats of bounding boxes annotations. Each format uses its specific representation of bouning boxes coordinates 每种格式都使用其特定的边界框坐标…

TCP聊天

一、项目创建 二、代码 Client类 package tcp; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.util.Scanner; public class Client { public sta…

Elasticsearch- 环境-Windows集群部署和环境-Linux单节点部署和Linux集群部署-03

Elasticsearch环境 环境-简介 单机 & 集群 单台 Elasticsearch 服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器性能就会大大降低甚至不可用,所以生产环境中,一般都是运行在指定服务器集群中。除了…

STM32 cubeMX 呼吸灯实验

文章代码使用 HAL 库。 文章目录 一、1.PWM原理二、LED 原理图三、使用cubemx 配置 led四、PWM 相关函数五、PWM占空比占空比计算六、PWM 呼吸灯重要代码总结 呼吸灯 一、1.PWM原理 PWM全称为脉冲宽度调制(Pulse Width Modulation),是一种常…

软著项目推荐 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &#x…

php循环遍历删除文件下文件和目录

前言 今天在写一个demo的时候需要循环删除目录下文件。如下想删temp下文件和目录。 具体实现 private function deleteDir($dirPath){if (is_dir($dirPath)) {$contents scandir($dirPath);// 如果是空目录if (count($contents) 2) {rmdir($dirPath);return;}// 不是空目录f…

windows MYSQL下载和自定路径安装,以及解决中文乱码问题。

文章讲的很详细,请耐心往下看。 一、mysql下载 下载网址:https://www.mysql.com/downloads/ 表示不登录,直接下载。 以上就把安装包下载完了。下载是8.0.35版本。 二、接下来看怎么安装 1.双击安装包,进行安装。 注意&#x…

【论文阅读笔记】M3Care: Learning with Missing Modalities in Multimodal Healthcare Data

本文介绍了一种名为“MCare”的模型,旨在处理多模态医疗保健数据中的缺失模态问题。这个模型是端到端的,能够补偿病人缺失模态的信息,以执行临床分析。MCare不是生成原始缺失数据,而是在潜在空间中估计缺失模态的任务相关信息&…

【web安全】文件包含漏洞详细整理

前言 菜某的笔记总结,如有错误请指正。 本文用的是PHP语言作为案例 文件包含漏洞的概念 开发者使用include()等函数,可以把别的文件中的代码引入当前文件中执行,而又没有对用户输入的内容进行充分的过滤&#xff0…

算法通关村第十八关-青铜挑战回溯是怎么回事

大家好我是苏麟 , 今天聊聊回溯是怎么个事 . 回溯是最重要的算法思想之一,主要解决一些暴力枚举也搞不定的问题,例如组合、分割、子集、排列,棋盘等。从性能角度来看回溯算法的效率并不高,但对于这些暴力都搞不定的算法能出结果就…

区分node,npm,nvm

目录 一,nodejs二,npm三,nvm 区分node,npm,nvm 几年前学习前端的时候学习的就是htmlcssjs 三件套。 现在只学习这些已经不能满足需要了。 一,nodejs nodejs是编程语言javascript运行时环境。(比…

【复杂gRPC之Java调用go】

1 注意点 一般上来说如果java调用java的话,我们可以使用springcloud来做,而面对这种跨语言的情况下,gRPC就展现出了他的优势。 代码放在这了,请结合前面的go服务器端一起使用 https://gitee.com/guo-zonghao/java-client-grpc /…

阿里云实时数据仓库HologresFlink

1. 实时数仓Hologres特点 专注实时场景:数据实时写入、实时更新,写入即可见,与Flink原生集成,支持高吞吐、低延时、有模型的实时数仓开发,满足业务洞察实时性需求。亚秒级交互式分析:支持海量数据亚秒级交…

量子算力引领未来!玻色量子出席第二届CCF量子计算大会

​8月19日至20日,中国计算机学会(CCF)主办的第二届CCF量子计算大会暨中国量子计算峰会(CQCC 2023)在中国合肥成功举办。本届大会以“量超融合,大国算力”为主题,设有量子计算软件、硬件、应用生…

机器学习应用 | 使用 MATLAB 进行异常检测(上)

异常检测任务,指的是检测偏离期望行为的事件或模式,可以是简单地检测数值型数据中,是否存在远超出正常取值范围的离群值,也可以是借助相对复杂的机器学习算法识别数据中隐藏的异常模式。 在不同行业中,异常检测的典型…
最新文章