已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 主讲 2 第2章计算机运算基础 通过本章学习 应该掌握以下内容 带符号数的编码定点数据表示浮点数据表示补码的加减运算及溢出判断移位运算 3 目录 2 1带符号数的编码2 2定点数据表示2 3浮点数据表示2 4补码的加减运算及溢出判断2 5移位运算 4 2 1带符号数的编码 在计算机中使用的连同符号一起数码化的数叫机器码 不同的机器码采用不同的编码规律 用 号加上数的绝对值表示的数称为真值 2 1 1原码原码的编码规律可概括为 正数的符号位用0表示 负数的符号位用1表示 数位部分则和真值的数位部分完全一样 5 例2 1已知X 1101 Y 1011 字长n 5 求X和Y的原码 解 X 原 01101 Y 原 11011例2 2已知X 0 1001 Y 0 1010 字长n 5 求X和Y的原码 解 X 原 0 1001 Y 原 1 1010原码表示简单直观 与真值转换容易 但符号位不能参加运算 在计算机中用原码实现算术运算时 要取绝对值参加运算 符号位单独处理 这对乘除法运算是很容易实现的 但对加减运算是非常不方便的 6 2 1 2补码1 补码表示的引出补码具有符号位可以参加运算和化减为加的特点 是计算机中使用最多的一种机器码 2 补码的定义对模为M的补码 其统一定义为 X 补 M X MODM X 补 2n X X 补 2 X正数的补码是其本身 但要用0表示正号 负数的补码是用模加上这个负数 即减去这个负数的绝对值 7 3 负数补码的求法补码的编码规律是正数的符号位用0表示 负数的符号位用1表示 但对数位部分则是正数同真值一样 负数要将真值的各位按位变反 末位加1 例2 3已知X 1001 Y 1001 字长n 5 求X和Y的补码 解 X 补 01001 Y 补 10111例2 4已知X 0 1010 Y 0 1011 字长n 5 求X和Y的补码 解 X 补 0 1010 Y 补 1 0101 8 4 由补码求真值从正数的补码求真值 不必计算 可以直接写出 从负数的补码求真值 和从真值求负数的补码方法一样 可将补码的各数位按位变反 末位加 然后加上数符 这一结论对定点整数也是同样适用的 例2 5已知 X 补 01101 Y 补 10110 求X和Y的真值 解 X 1101 Y 1010例2 6已知 X 补 0 1011 Y 补 1 1101 求X和Y的真值 解 X 0 1011 Y 0 0011 9 2 1 3反码反码的编码规律可概括为 正数的符号位用0表示 负数的符号位用1表示 数位部分则是正数同真值一样 负数要将真值的各位按位变反 例2 7已知 X 1111 Y 1010 字长n 5 求X和Y的反码 解 X 反 01111 Y 反 10101例2 8已知 X 0 1011 Y 0 1001 字长n 5 求X和Y的反码 解 X 反 0 1011 Y 反 1 0110由于负数的反码加 就是负数的补码 所以 反码在计算机中常用做求补码的中介 10 2 1 4移码当字长为n位时 移码表示的定义为 X 移 2n 1 X MOD2n 1 移码的编码规律是 正数的符号位用1表示 数位部分同真值一样 负数的符号位用0表示 数位部分变反加1 移码还有一个非常有用的特点 即编码大的移码 对应的真值也大 这个特点可用来比较两个移码表示的数的大小 例2 9已知X 1001 Y 1101 字长n 5 求X和Y的移码 解 X 移 11001 Y 移 00011 11 2 1 5四种机器码的比较 对于正数 原码 补码 反码的表示形式一样 对于负数 原码 补码 反码的表示形式不一样 移码表示和补码表示仅符号位相反 数值位编码完全相同 几种机器码的最高位都是符号位 原码 补码 反码用0表示正数 1表示负数 而移码用1表示正数 0表示负数 根据定义 原码和反码各有两种0的表示形式 而补码和移码表示0有唯一的形式 12 在字长n位的整数表示中 几种机器码的0有如下的表示形式 0 原 00 00 n个0 0 原 10 00 n 1个0 0 反 00 00 n个0 0 反 11 11 n个1 0 补 0 补 00 00 n个0 0 移 0 移 10 00 n 1个0 13 原码和反码表示的数的范围是相对于0对称的 表示的范围也相同 而补码和移码表示的数的范围相同 但相对于0是不对称的 表示的范围和原码 反码也不同 这是由于当字长为n位时 它们都可以有2n个编码 但原码和反码表示0用了两个编码 而补码和移码表示0只用了一个编码 于是 同样字长的编码 补码和移码可以多表示一个负数 这个负数在原码和反码中是不能表示的 表2 1给出了字长n 4时 二进制整数真值和原码 反码 补码 移码的对应关系 14 表2 1二进制整数真值和原码 反码 补码 移码的对应关系 15 2 2定点数据表示 数据表示是指计算机硬件可以识别的数据类型 常用的数值型数据表示分为定点数据表示和浮点数据表示两大类 定点数是小数点位置固定的数 也是计算机中最简单 最基本的一种数据表示 根据小数点固定的位置不同 又可分成定点整数 定点小数和无符号数 16 2 2 1定点整数表示定点整数表示是将小数点位置固定在最低有效数位后面的定点数 定点整数是纯整数 对字长n位的机器 定点整数表示的格式如图2 1所示 17 当机器的字长为n时 包括一位符号位 定点整数表示的范围对原码和反码是 2n 1 1 2n 1 1对补码和移码来说 表示范围是 2n 1 2n 1 1例如 当字长n 16时 原码和反码的表示范围是 215 1 215 1而补码和移码的表示范围是 215 215 1 18 表2 2字长8位的定点整数能表示的4个典型值 19 例2 10设机器字长n 16 最高位为符号位 写出X 11011011的原码 反码 补码和移码的定点整数表示 解 正数的原码 反码 补码的定点整数表示形式是完全一样的 它们在机器中的表示形式为 X 原 X 补 X 反 0000000011011011移码在计算机中的表示形式为 X 移 1000000011011011 20 例2 11设机器字长n 16 最高位为符号位 写出X 11011011的原码 反码 补码和移码的定点整数表示 解 X 原 1000000011011011 X 反 1111111100100100 X 补 1111111100100101 X 移 0111111100100101 21 2 2 2定点小数表示定点小数表示是将小数点固定在最高有效数位和符号位之间的定点数 定点小数是纯小数 对字长n位的定点小数表示格式如图2 2所示 22 当字长为n时 包括一位符号位 原码和反码的表示范围是 1 2 n 1 1 2 n 1 对补码来说 表示范围是 1 1 2 n 1 例如 字长n 16时 对原码和反码来说 表示范围是 1 2 15 1 2 15对补码来说 表示范围是 1 1 2 15 23 例2 12设机器字长n 16 最高位是符号位 写出X 0 11011101的原码 反码 补码的定点小数表示 解 正数的原码 反码 补码的定点小数表示形式是相同的 它们在机器中的表示形式为 X 原 X 补 X 反 0 110111010000000例2 13设机器字长n 16 最高位是符号位 写出X 0 11011101的原码 反码 补码的定点小数表示 解 X 原 1 110111010000000 X 反 1 001000101111111 X 补 1 001000110000000 24 2 2 3无符号数表示无符号数是一种不设符号位的正整数 在无符号数表示中 由于符号位可以省略 所有的位都用来表示数值 小数点仍然规定在最低数位的后面 隐含表示 对字长为n的无符号数 其表示范围是 0到2n 1 在计算机中 无符号数也是经常使用的 主存单元的地址编码就是采用无符号数表示的 如地址码为32位 主存单元的最小地址编码是 00000000H 最大地址编码是0FFFFFFFFH 针对无符号数的运算 计算机还设置有专门的指令 25 在定点数表示中 当要表示的数比最大的数还大或比最小的数还小时 称为上溢 计算机要做相应的溢出处理 当要表示的数比最大非0负数还大 同时比最小非0正数还小时 称为下溢 计算机将其作为0处理 为了满足不同用户对数的表示范围和精度的要求 许多计算机采用了多种字长的定点数表示 如有的计算机就采用了8位 16位 32位 64位四种定点数表示形式 可满足不同应用的要求 26 2 3浮点数据表示 浮点数是小数点位置不固定的数 对应高级语言中的实型数 此外 在科学计算和工程设计中 常常会遇到非常大或非常小的数 如太阳的质量是2 1030kg 电子的质量是9 10 31kg 太阳的质量大约是电子质量的2 22 1060倍 如此巨大的数 在定点数表示中是很难实现的 为此 在计算机中引入了浮点数据表示 在有浮点数表示的计算机中 编译程序可以直接将实型数转换成浮点数 既简化了软件的设计 又提高了计算机的工作效率 27 2 3 1浮点数据表示的格式和特点 N 0 11110001 2 0101其中 0 11110001将转换成尾数 0101将转换成阶码 基数2则是隐含表示 在字长n 16 阶符 数符各占1位 阶码占6位 尾数占8位的浮点数格式中 浮点数N在机器中的表示形式为 阶码和尾数采用补码表示 N 补 1111011 0 11110001其中 逗号和小数点是为了阅读方便加上的 在实际机器中并不存在 28 例2 14设浮点数的阶码和尾数均采用补码表示 且位数分别为5位和11位 均含1位符号位 将数X 27 29 32用浮点数格式表示 解 1 将X转换成二进制代码 X 27 29 32 10 27 29 2 5 10 2111 0 11101 2 2 按指定的浮点数格式表示 X 补 00111 1 0001100000 29 阶码E采用定点整数表示 尾数M一般采用定点小数表示 这同科学计数法中的规定是有一定差别的 浮点数的正负取决于尾数的正负 所以数符也叫尾符 阶码的符号和阶码的绝对值共同决定小数点的位置 阶码为正时 绝对值越大 浮点数的绝对值越大 阶码为负时 绝对值越大 浮点数的绝对值越小 浮点数尾数的基数R在机器中不用硬件表示 是机器本身规定的 大部分机器取R 2 也有的机器取R 8或R 16 浮点数的表示范围主要取决于阶码的位数及基数 精度主要取决于尾数的位数 30 2 3 2浮点数的表示范围和规格化1 浮点数的表示范围对阶码位数为m位 包含1位符号位 尾数位数为n位 包含1位符号位 的浮点数 如尾数的基数为2 阶码和尾数都采用补码表示 则能表示的最小负数是 1 能表示的最大正数是 1 2 n 1 31 2 浮点数表示的规格化如果一个浮点数不是规格化的 则要进行规格化处理 对基数为2的浮点数 当尾数的绝对值小于0 5时 需要进行左规格化 简称左规 处理 左规时尾数每左移一位 扩大2倍 阶码减1 保持浮点数真值不变 直到尾数的绝对值大于等于0 5为止 当尾数的绝对值大于1时 需要进行右规格化 简称右规 处理 右规时可将尾数右移 每右移一位 尾数缩小为1 2 阶码加1 保持浮点数真值不变 右规一般只进行一次就可满足规格化要求 32 例2 15浮点数采用补码表示 阶码位数为4位 包含1位符号位 尾数位数为6位 包含1位符号位 将浮点数0101 1 11011和1101 0 00010规格化 解 浮点数0101 1 11011左规后 尾数左移2位 阶码减2 为 0011 1 01100 浮点数1101 0 00010左规后 尾数左移3位 阶码减3 为 1010 0 10000 33 2 3 3IEEE754标准IEEE754标准浮点数表示的格式 IEEE754浮点数标准规定浮点数的第1位是符号位 阶码用移码表示 尾数用原码表示 IEEE754浮点数有3种类型 格式如表2 4所示 34 表2 4IEEE754的三种浮点数格式 35 在IEEE754标准中 单精度的规格化浮点数表示为 N 1 M 2E 127 如阶码的真值X 2 则可以计算出阶码值 E 127 2 129 二进制代码序列为 10000001 阶码的真值X 22 则阶码值 E 127 22 105 二进制代码序列为 01101001 例2 16X 10100 1101 用IEEE754标准的单精度浮点数格式表示 解 X 10100 1101 1 01001101 2100 数的符号 Sf 1 数的阶码 E 01111111 100 10000011 数的尾数用原码表示 和真值相同 所以X在机器中的表示为 最高数位已隐含 110000011 01001101000000000000000 36 2 3 4浮点数表示和定点数的比较 当字长相同时 浮点数表示的范围要大得多 如字长32位的定点整数 能表示的最大数是231 1 而IEEE754标准中的单精度浮点数能表示的最大数大约是2127 浮点数表示比定点数表示的分辨率高 即绝对精度非常高 绝对精度随阶码变化 IEEE754标准中的单精度浮点数能表示的最高分辨率是2 126 比定点数要高得多 浮点数表示比定点数表示的应用范围更广 浮点数表示比定点数表示复杂 运算步骤多 硬件实现也复杂得多 浮点数表示和定点数表示判断溢出的方法不同 对规格化的浮点数判断溢出是通过判断阶码是否溢出进行的 只有阶码溢出 浮点数才算溢出 如果仅尾数溢出 可通过调整尾数和阶码 使其不溢出 37 2 4补码的加减运算及溢出判断 2 4 1补码加法运算补码加法的公式为 X Y 补 X 补 Y 补公式说明 两个带符号的补码可以直接相加 和就是两个数和的补码 这一公式也适用于定点小数的补码加法运算 38 操作码为 加 时 两数直接相加 例 求 X Y 补 字长5位 39 2 4 2补码减法运算根据补码加法运算的公式很容易得出补码减法运算的公式 X Y 补 X Y 补 X 补 Y 补公式说明 求两个数差的补码 可以用被减数的补码加上和减数符号相反数的补码实现 这样 采用补码运算 就可以化减为加 计算机的运算器中只需要设计加法器 减法器就不需要了 40 41 2 4 3溢出判断在做加法和减法运算时 如果运算结果超出了数的表示范围 就会发生溢出 计算机需要将状态或标志寄存器的溢出标志位置1 由于同号相加或异号相减 是数的绝对值相加 有可能溢出 而异号相加或同号相减是绝对值相减 不会发生溢出 又由于减法可以化作加法来做 所以只讨论同号数的加法运算来判断溢出就可以了 计算机中判断溢出的方法有多种 下面介绍常用的两种方法 42 1 利用运算时符号位和最高数位的进位判断溢出采用单符号运算时 如果两个正数相加 符号位是不会产生进位的 如果最高数位产生了向符号位的进位 会使结果符号位成为1 显然结果就不对了 因为正数相加 结果只能是正的 结果是负数则说明运算结果溢出了 同理 如果两个负数相加 符号位必然产生进位 如果最高数位不产生向符号位的进位 会使结果符号位成为0 显然结果就不对了 因为负数相加 结果只能是负的 结果是正数则说明运算结果溢出了 43 对以上的讨论进行概括 可得出结论 如果运算时符号位和最高数位产生的进位不一致 则发生溢出 运算时符号位和最高数位产生的进位一致 则不发生溢出 设运算时符号位产生的进位是Cn 最高数位产生的进位是Cn 1 则运算溢出的条件是 Cn Cn 1 1 可以用一个异或门电路实现溢出判断 44 45 2 采用双符号位判断溢出双符号位补码又叫变形补码 编码时正数的符号位用00表示 负数的符号位用11表示 当运算结果的符号位是01时 结果为正 但发生正溢出 运算结果的符号位是10时 结果为负 但发生负溢出 运算结果的符号位是00或11时 结果正确 没有发生溢出 设结果的第一符号位是Sf1 第二符号位是Sf2 则溢出的条件是 Sf1 Sf2 1 也可以用一个异或门电路实现溢出判断 采用变形补码判断溢出 不但能判断溢出 第一符号位还能指出是正溢出还是负溢出 只是在运算时要增加一位符号位 46 第一符号位Sf1 第二符号位Sf2 47 2 5 1算术移位算术移位左移相当于乘以2 右移相当于除以2 和加减运算配合 可实现计算机中的乘除运算 但左移时不应改变数的符号位 如果符号位改变 结果就不正确了 1 原码移位原码的移位规则是符号位不参加移位 左移数值位高位移出 末位补0 右移数值位低位移出 高位补0 当最高数位是1时 左移会丢失数的高位 出现错误 当最低数位是1时 右移会损失数的精度 2 5移位运算 48 例2 30 X 原 00000010 Y 原 10000011 将 X 原和 Y 原左移两位 解 按照原码的移位规则 左移两位后 X 原 00001000 Y 原 10001100 例2 31 X 原 00000100 Y 原 10011000 将 X 原和 Y 原右移两位 解 按照原码的移位规则 右移两位后 X 原 00000001 Y 原 10000110 49 2 补码移位补码的移位规则是符号位参加移位 左移数的末位补0 符号位移出 最高数位会移到符号位 右移数的符号不变 高位补符号位 末位移出 当正数补码的最高数位是1或负数补码的最高数位是0时 左移会改变数的符号 同时丢失数的高位 当最低数位是1时 右
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年潍坊临朐县计划招聘教师190人笔试考试备考题库及答案解析
- 2025山东菏泽鲁西新区第二实验幼儿园教师招聘2人笔试考试备考试题及答案解析
- 2025B类资产管理合同(优先受益类)
- 2025航空工业自控所及上海民用航空控制与导航系统有限公司社会招聘笔试考试参考试题附答案解析
- 2025版合同能源管理标准合同范本
- 2025重庆合川区遴选公务员38人笔试考试备考试题及答案解析
- 2025年11月江苏省苏北人民医院招聘高层次人才10人笔试考试备考试题及答案解析
- 银行笔试考试题目及答案
- 招聘教师笔试考试题目及答案
- 2025合同终止确认书格式,解除合同协议书格式
- 2025年校招心理测试题目及答案
- 2025年综合基础知识题库(含答案)
- 超声引导下膀胱残余尿测定
- 充电桩知识培训课件
- 设计主管竞聘述职报告
- “十五五”时期我国产业科技创新发展形势研判及思路建议
- 【课件】加油站安全检查培训
- 2025至2030年中国真空电机行业市场行情监测及前景战略研判报告
- 化妆新手技巧 从零起步轻松上手
- 古树茶采摘与保护承包合同
- 2025年高考真题-数学(北京卷) 无答案
评论
0/150
提交评论