当前课程知识点:大学计算机基础 > 第二章 数据的表示与运算 > 2-6 算术运算 > 2-6 算术运算
大家已经知道了
计算机中数值型数据的表示方法
从这节开始,我们来学习数值型数据的运算
二进制的数值运算
包括算术运算和逻辑运算
由计算机CPU中的算术逻辑单元ALU完成
算术运算
包括加,减,乘,除和算术移位运算
逻辑运算包括逻辑与、或、非、异或、同或
以及逻辑移位运算
本节我们先介绍算术运算
重点介绍整数的加减和移位运算
计算机中整数的存储
以及加减和移位运算
大多采用补码来实现
补码运算规则简单
可以把符号位和数值位一起进行处理
也就是把符号位当作数据参与运算
根据补码的定义我们可以证明
两个数和的补码等于这两个补码的和
即[X+Y]补=[X]补+[Y]补
同样可以证明两个数差的补码
等于被减数的补码加上减数
取负号后的补码
即[X-Y]补=[X]补+[-Y]补
[-Y]补可以通过对[Y]补
进行求补运算得到
求补运算就是把[Y]补的
符号位和数值位全部取反
再在末尾加1
我们来看这个例子
设机器字长为8位,X=10,Y= 14
用补码运算来求X+Y和X-Y的结果
首先根据补码的表示规则
我们计算出10的补码表示
和14的补码表示
根据前面给出的公式
X+Y的结果的补码
应该是把这两个补码进行加法运算
按照二进制的加法我们进行按位加
运算结果的符号位为0表示是正数
正数的补码与原码相同
运算结果代表的是24的补码
X+Y的结果等于24
补码运算结果正确
再求X-Y的结果
这时候我们要求[-Y]补
[-Y]补是对[Y]补进行求补运算得到的
所以我们先将[Y]补进行按位取反
再在末位加1
这个结果是[-Y]补
我们和[X]补进行加法运算
最终的结果符号位为1,表示是负数
那这个结果对应的真值是多少呢
大家已经知道了
如何求一个数的补码表示
那反过来
已知补码又如何得到对应的原码呢
从而知道这个数的真值呢
已知补码,求原码的方法
其实和补码是一样的
如果补码的符号位为0,表示是一个正数
那么补码就是这个数的原码
如果补码的符号位为1,表示是一个负数
那求原码的时候我们让符号位保持为1
其余位按位取反
最后再在末位加1
对于这个结果,符号位为1表示是一个负数
真值代表的是4
所以X-Y等于-4的补码
[X-Y]补等于-4的补码
X-Y的结果是-4
补码运算结果正确
我们再来看一个补码加减运算的例子
设机器字长为8位
X=-10, Y=-14
用补码运算来求X+Y和X-Y的结果
首先还是根据补码的运算规则
我们分别求出-10的补码和-14的补码
然后根据前面给出的公式
[X+Y]补=[X]补+[Y]补
所以我们对这两个补码进行加法运算
产生一个像第9位的进位
由于机器字长只有8位
所以最高位的进位1被无条件地丢弃
我们看到转换的结果符号位为1
表示是一个负数
那根据补码表示
如何求出这个数的真值呢
大家用一下刚才我们介绍过的方法
我们可以求到这是-24所对应的补码
X+Y的结果等于-24
补码运算结果正确
下面再来看X-Y的结果
我们要先求出[-Y]补
[-Y]补可以通过[Y]补进行求补运算得到
我们先把[Y]补按位取反
再在最末位加1
得到[-Y]补的补码之后
和[X]补进行加法运算
按位相加
产生像第9位的进位
最高位的进位被丢弃
得到的结果符号位为0
表示是一个正数
正数的补码表示和原码相同
这个结果代表的是4的补码
X-Y的结果等于4
补码运算正确
通过前面的两个例子我们看到
采用补码进行加减运算十分简单
符号位和数值位一起参与运算
运算过程中无需考虑两个数的正负号
和绝对值的大小
通过对负数的补码进行处理
可以把减法运算转换成加法运算
这样CPU的算术逻辑单元
只要能实现加法和求补运算
就可以实现任意两个数的加减运算
从而极大地简化了
算术逻辑单元的硬件设计
下面我们再来看看算术移位运算
算术移位又分为算术左移和算术右移
通常也是用数据的补码表示来实现的
我们来看这个例子
假设机器字长是8位
对28的补码表示我们向左移动一位
算术左移的规则是所有位向左移一位
最高位丢弃,最低位补0
得到的结果代表的值是56
对一个算术左移一位
相当于给这个数乘以2
左移n位就相当于
给这个数乘以了2的n次方
对[28]补我们再做一次算术右移
算术右移规则是所有位向右移动一位
最低位丢弃,最高位补符号位,符号位为0
我们最高位补符号位,所有位右移一位
最低位丢弃
得到的结果代表的真值是14
对一个算术右移一位
相当于给这个数除以2
那右移n位相当于就除以2的n次方
最后我们总结一下
这一节我们介绍了
二进制整数的加减和移位运算
这些运算都采用补码的形式进行
采用补码使运算规则简单
数据的符号位和数值位一起参与运算
运算过程中
无需考虑两个数的正负号和绝对值的大小
谢谢大家的观看
-1-1 计算机的诞生
--第一章 习题1
--计算机的诞生1
--计算机的诞生2
-1-2 计算机的分类
--第一章 习题2
--计算机的分类
-1-3 计算机的应用领域
--第一章 习题3
-1-4 计算机系统组成
--第一章 习题4
--计算机系统组成1
--计算机系统组成2
-1-5 计算机思维的定义
--第一章 习题5
--计算思维1
-1-6 计算思维的特点
--第一章 习题6
--计算思维2
-1-7 计算思维的应用案例
--第一章 习题7
--计算思维3
-第一章 章测试
-2-1 进位计数制表示方法
--第二章 习题1
-2-2 进位计数制的相互转换
--第二章 习题2
--进位计数制2
-2-3 整数的表示方法
--第二章 习题3
--整数的表示1
-2-4 浮点数表示方法
--第二章 习题4
--浮点数的表示1
-2-5 BCD格式表示法
--第二章 习题5
--BCD码
-2-6 算术运算
--2-6 算术运算
--第二章 习题6
-2-7 运算溢出及判断
--第二章 习题7
--运算的溢出
-2-8 逻辑运算
--2-8 逻辑运算
--第二章 习题8
--逻辑运算
-2-9 ASCII编码
--第二章 习题9
-2-10 Unicode编码
--第二章 习题10
-2-11汉字编码
--2-11汉字编码
--第二章 习题11
--汉字编码
-2-12数据校验编码
--第二章 习题12
--数据校验编码
-第二章 章测试
-3-1中央处理器
--3-1中央处理器
--第三章 习题1
--中央处理器
-3-2 存储器
--3-2 存储器
--第三章 习题2
--存储器1
--存储器2
--存储器3
-3-3 总线和接口
--第三章 习题3
--总线
-3-4 外部设备
--3-4 外部设备
--第三章 习题4
--外部设备
-3-5 冯.诺依曼体系结构
--第三章 习题5
-3-6 计算机常用性能指标
--第三章 习题6
--性能指标1
--性能指标2
-3-7嵌入式系统
--第三章 习题7
--嵌入式系统
-3-8哈佛体系结构
--第三章 习题8
--哈佛体系结构
-3-9 DSP简介
--3-9DSP简介
--第三章 习题9
--DSP
-3-10 虚拟台式计算机模拟器
--虚拟桌面架构
-3-11 4位计算机模拟器
-第三章 章测试
-4-1计算机软件分类
--第四章 习题1
--软件分类
-4-2软件的工作模式
--第四章 习题2
--软件的工作模式
-4-3软件的安装方法
--第四章 习题3
--软件安装
-4-4计算机软件生命周期
--第四章 习题4
--生命周期1
--生命周期2
--生命周期3
--软件测试1
--软件测试2
-4-5计算机软件开发过程模型
--第四章 习题5
- 4-6 常用软件介绍-办公软件
--第四章 习题6
-办公软件实例1 文字处理软件
-办公软件实例2 电子表格软件
-办公软件实例3 演示文稿软件
-4-7 常用软件介绍-多媒体创作软件
--第四章 习题7
-多媒体创作软件实例1 音频处理软件
-多媒体创作软件实例2 图像处理软件
-多媒体创作软件实例3 动画制作软件
-多媒体创作软件实例4 视频处理软件
-4-8 常用软件介绍-网页制作软件
--第四章 习题8
-第四章 章测试
-5-1 操作系统概述
--第五章 习题1
--操作系统
--操作系统分类
--操作系统管理
-5-2 Windows 7基本操作
--第五章 习题2
-5-3 Windows 7文件管理
--第五章 习题3
-5-4 Windows 7程序管理
--第五章 习题4
-5-5 Windows 7系统安全
--第五章 习题5
--操作系统安全
-5-6 Windows 7计算机管理
--第五章 习题6
-5-7 Dos命令
--第五章 习题7
--dos
-5-8 Windows 7常用软件
--第五章 习题8
-5-9 Linux操作系统
--第五章 习题9
--Linux
-5-10 手机操作系统
--第五章 习题10
-5-11 虚拟机及Vmware介绍
--第五章 习题11
--虚拟机
--虚拟机使用
-第五章 章测试
-6-1 算法基础
--6-1 算法基础
--第六章 习题1
-6-2 程序设计语言分类
--第六章 习题2
-6-3 程序设计过程
--第六章 习题3
-6-4 程序设计方法
--第六章 习题4
-6-5 程序设计语言基本要素(一)
--第六章 习题5
-6-6 程序设计语言基本要素(二)
--第六章 习题6
-6-7 Python简介及编程环境配置
--第六章 习题7
-6-8 程序设计应用举例
--第六章 习题8
-第六章 章测验
-7-1 数据库技术概述
--第七章 习题1
--信息和数据
-7-2 数据库管理系统
--第七章 习题2
--数据库管理系统
-7-3 数据库系统的组成与功能
--第七章 习题3
--独立性
--数据库系统分类
-7-4 关系模型的数据结构
--第七章 习题4
--E-R图
--三级模式结构
-7-5 关系模型的数据操作及完整性约束
--第七章 习题5
--关系模型
--数据库范式
--完整性约束
-7-6 Access数据库的建立
--第七章 习题6
--Access
-7-7 Access的数据查询
--第七章 习题7
-第七章 章测试
-8-1计算机网络概述
--第八章 习题1
--定义
-8-2网络分类
--8-2网络分类
--第八章 习题2
--分类
-8-3数据传输
--8-3数据传输
--第八章 习题3
--数据传输
-8-4网络拓扑结构
--第八章 习题4
--网络拓扑结构
-8-5网络体系结构
--第八章 习题5
--网络体系结构
-8-6网络互连
--8-6网络互连
--第八章 习题6
--网络互连
-8-7Internet基础:TCP╱IP协议结构
--第八章 习题7
--TCP/IP模型
--IP协议
-8-8Internet基础:IP地址
--第八章 习题8
--IP地址
-8-9Internet基础:域名系统
--第八章 习题9
--域名
-8-10Internet基础:Internet的基本服务
--8-10Internet基础:Internet的基本服务
--第八章 习题10
--Internet
-8-11Internet基础:Internet的接入
--第八章 习题11
-第八章 章测试
-9-1信息安全的基本概念
--第九章 习题1
--信息安全的CIA
--攻击与防御
-9-2 密码技术及应用
--第九章 习题2
--数字签名
-9-3防火墙技术
--9-3防火墙技术
--第九章 习题3
--防火墙的分类
--防火墙的基本特性
-9-4恶意软件
--9-4恶意软件
--第九章 习题4
--恶意软件类型
-9-5入侵检测技术
--第九章 习题5
--入侵检测概念原理
--入侵检测分类
-第九章 章测试
-10-1 云计算
--10-1 云计算
--第十章 习题1
-10-2大数据
--10-2大数据
--第十章 习题2
-10-3物联网
--10-3物联网
--第十章 习题3
-10-4机器学习
--10-4机器学习
--第十章 习题4
-10-5人工智能
--10-5人工智能
--第十章 习题5
-10-6物联网应用
-第十章 章测验
-1-0 准备步骤
--1-0 准备步骤
-1-1 台式机组装
-1-2 笔记本电脑组装
-3-1 启动和退出Word
-3-2 创建、编辑和保存Word文档
-3-3 封面的制作
--封面的制作-1
--封面的制作-2
--封面的制作-3
--封面的制作-4
-3-4 长文档编辑
--长文档编辑
-3-5 页面插入与目录
-3-6 页眉页脚与页码
-3-7 完成文档
-4-1 创建和编辑Excel表格
-4-2 简单公式和函数
-4-3 插入图表
--4-3 插入图表
-4-4 电子表格中数据的管理
-5-1 创建演示文稿与添加幻灯片
-5-2 编辑演示文稿
-5-3 设置演示文稿外观
-5-4 交互式演示文稿的设置
-5-5 设置演示文稿动画和音乐
-5-6 演示文稿放映
-6-1 图像的修饰
-6-2 淡黄色的记忆
-6-3 心形贺卡
--6-3 心形贺卡
-6-4 燃烧字
--6-4 燃烧字
-6-5 闻味的小狗狗
-6-6 换脸
--6-6 换脸
-7-1 逐帧动画的制作
-7-2 动作补间动画的制作
-7-3 形状补间动画的制作
-8-1 网站制作前期工作
-8-2 在Dreamweaver中建立和管理站点
-8-3设计制作网站主页
-8-4 制作网站导航栏
-8-5 修饰美化页面
-8-6 填写页面内容
-8-7 设计制作次级页面并建立链接
-9-1 Python的下载
-9-2 Python的安装
-9-3 IDLE的使用
-9-4 求矩形的周长和面积
-9-5 求三角形的面积
-9-6 求素数
--9-6 求素数
-10-1 数据库的建立
-10-2 SQL的应用
-11-1 Packet Tracer简介及下载方法
-11-2 有线网络的组网与配置
-11-3 无线网络的组网及无线路由配置
-12 无线网络安全配置