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

先热热身

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

        在算术中,加减被视为一级运算,乘除被视为二级运算,乘方和开方被视为三级运算。在一道算式中,如果有几级运算存在,应先进行高级运算再进行低一级的运算。例如,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.mzph.cn/news/206051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站导航栏下滑隐藏,上滑显示,效果杠杆,兼容性强

前言 导航栏是网站必不可少的一部分,那么,导航栏应该怎么样子实现,可以高效自定义兼容开发呢?当然,不仅要实现,而且还要实现导航栏顶部固定位置,下拉隐藏,稍微往上滑动就会出现&…

Python中的并发编程(2)线程的实现

Python中线程的实现 1. 线程 在Python中,threading 库提供了线程的接口。我们通过threading 中提供的接口创建、启动、同步线程。 例1. 使用线程旋转指针 想象一个场景:程序执行了一个耗时较长的操作,如复制一个大文件,我们希…

2022年第十一届数学建模国际赛小美赛D题野生动物贸易是否应长期禁止解题全过程文档及程序

2022年第十一届数学建模国际赛小美赛 D题 野生动物贸易是否应长期禁止 原题再现: 野生动物市场被怀疑是此次疫情和2002年SARS疫情的源头,食用野生肉类被认为是非洲埃博拉病毒的一个来源。在冠状病毒爆发后,中国最高立法机构永久性地加强了野…

【git教程】

目录 git与SVN的区别:集中式与分布式的区别Windows上安装Git创建版本库/仓库(repository)将文件添加到repository报错处理 查看仓库的状态版本回退工作区和暂存区管理和修改撤销修改删除文件远程仓库添加远程仓库警告解除本地和远程的绑定关系…

一文3000字从0到1用Python进行gRPC接口测试!

gRPC 是一个高性能、通用的开源RPC框架,其由 Google 主要面向移动应用开发并基于HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。 自gRPC推出以来,已经广泛应用于各种服务之中。在测…

AI助力智慧农业,基于SSD模型开发构建田间作物场景下庄稼作物、杂草检测识别系统

智慧农业随着数字化信息化浪潮的演变有了新的定义,在前面的系列博文中,我们从一些现实世界里面的所见所想所感进行了很多对应的实践,感兴趣的话可以自行移步阅读即可:《自建数据集,基于YOLOv7开发构建农田场景下杂草检…

【C语言快速学习基础篇】之二控制语句、循环语句、隐式转换

文章目录 一、控制语句1.1、for循环1.2、while循环1.3、注意:for循环和while循环使用上面等同1.4、do while循环1.4.1while条件成立时1.4.2、while条件不成立时 C语言介绍 C语言是一门面向过程的计算机编程语言,与C、C#、Java等面向对象编程语言有所不同…

“分割“安卓用户,对标iOS,鸿蒙崛起~

近期关于**“华为于明年推出不兼容安卓的鸿蒙版本”**的消息传出,引起了业界的热议关注。自从2019年8月,美国制裁下,华为不再能够获得谷歌安卓操作系统相关付费服务,如此情况下,华为“备胎”鸿蒙操作系统一夜转正。 华…

有效解决wordpress的502 Bad Gateway错误提示

摘要:最近有客户反映使用阿里云虚拟云主机,wordpress常提示502 Bad Gateway错误,网关错误是网站上遇到的常... wordpress的502 Bad Gateway错误如何修复? 第1步:偶发错误可尝试重新加载网站 偶尔出现流量突发爆增或是服…

Sql Server关于表的建立、修改、删除

表的创建: (1)在“对象资源管理器”面板中展开“数据库”节点,可以看到自己创建的数据库,比如Product。展开Product节点,右击“表”节点,在弹出的快捷菜单中选择“新建表”项,进入“…

打工人副业变现秘籍,某多/某手变现底层引擎-Stable Diffusion简介

Stable Diffusion是2022年发布的深度学习文本到图像生成模型,它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如

K-means算法通俗原理及Python与R语言的分别实现

K均值聚类方法是一种划分聚类方法,它是将数据分成互不相交的K类。K均值法先指定聚类数,目标是使每个数据到数据点所属聚类中心的总距离变异平方和最小,规定聚类中心时则是以该类数据点的平均值作为聚类中心。 01K均值法原理与步骤 对于有N个…

[HITCON 2017]SSRFme perl语言的 GET open file 造成rce

这里记录学习一下 perl的open缺陷 这里首先本地测试一下 发现这里使用open打开 的时候 如果通过管道符 就会实现命令执行 然后这里注意的是 perl 中的get 调用了 open的参数 所以其实我们可以通过管道符实现命令执行 然后这里如果file可控那么就继续可以实现命令执行 这里就…

JavaSE基础50题:12. 编写代码模拟三次密码输入的场景。

概述 编写代码模拟三次输入的场景,最多能输入三次密码,密码正确,提示 “登录成功” ,密码错误,可重新输入,最多输入三次,三次均错,则提示退出程序。 代码 import java.util.Scann…

Redission分布式锁原理初探

什么是分布式锁,为什么需要分布式锁 在多线程并发请求当中,为了保证我们的资源同一时刻只有一个线程进行操作(如商品超卖问题、购票系统等),我们通常要添加锁机制,如ReentrantLock,也就是可重入…

C# 使用FluentScheduler触发定时任务

写在前面 FluentScheduler是.Net平台下的一个自动任务调度组件,以前经常用的是Quarz.Net,相对而言FluentScheduler的定时配置更为直观,可直接用接口进行参数化设置,对Cron表达式有恐惧症的人来说简直就是福音,使用起来…

Linux——进程状态

我们都知道进程信息被放到了PCB(task_struct)中,可以理解为进程属性的集合。 PCB中包含了进程的ID,时间片,pc指针,所有的寄存器,进程状态、优先级、I/O状态信息等等...有兴趣的可以去看看源码&…

【计算机网络笔记】物理层——频带传输基础

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

LAMP和分离式LNMP部署

目录 一.什么是LAMP? 二.安装LAMP 先安装apache,httpd网页服务: 接着安装mysql: 安装php: 创建论坛: 三.安装分布式LNMP: 先安装nginx: 到另一台主机安装php: …

整数二分的建模

当题目能够使用整数二分法建模时&#xff0c;主要有整数二分法思想进行判定&#xff0c;它的基本形式如下&#xff1a; while(left < right) {int ans;//记录答案 int mid left (right - left) / 2;//二分if(check(mid)){//检查条件&#xff0c;如果成立 ans mid;//记录…