《第04章 数据运算(精品).ppt》由会员分享,可在线阅读,更多相关《第04章 数据运算(精品).ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第0404章章 数据运算数据运算-2-本章内容安排本章内容安排&逻辑运算逻辑运算&移位运算移位运算&算术运算算术运算-3-逻辑运算逻辑运算&逻辑运算的分类逻辑运算的分类 位层次上的逻辑运算:对位层次上的逻辑运算:对位层次上的逻辑运算:对位层次上的逻辑运算:对1 1位二进制位执行逻辑运算位二进制位执行逻辑运算位二进制位执行逻辑运算位二进制位执行逻辑运算 模式层次上的位运算:对模式层次上的位运算:对模式层次上的位运算:对模式层次上的位运算:对n n位位模式逐位执行逻辑运算位位模式逐位执行逻辑运算位位模式逐位执行逻辑运算位位模式逐位执行逻辑运算-4-1、位层次上的逻辑运算、位层次上的逻辑运算&位和
2、逻辑运算位和逻辑运算 一个位可能是一个位可能是一个位可能是一个位可能是0 0或或或或1 1,假设,假设,假设,假设0 0代表代表代表代表“假假假假”,1 1代表代表代表代表“真真真真”可以运用可以运用可以运用可以运用布尔代数布尔代数布尔代数布尔代数中定义的运算去操纵二进制位,从而中定义的运算去操纵二进制位,从而中定义的运算去操纵二进制位,从而中定义的运算去操纵二进制位,从而处理逻辑运算。处理逻辑运算。处理逻辑运算。处理逻辑运算。&基本运算基本运算 非(非(非(非(NOTNOT):一元运算,只有):一元运算,只有):一元运算,只有):一元运算,只有1 1个输入。个输入。个输入。个输入。与(与(与
3、(与(ANDAND):二元运算。):二元运算。):二元运算。):二元运算。或(或(或(或(OROR):二元运算。):二元运算。):二元运算。):二元运算。异或(异或(异或(异或(XORXOR):二元运算。):二元运算。):二元运算。):二元运算。-5-真值表真值表-6-非(非(NOT)&只有只有1 1个输入,输出为输入的反转个输入,输出为输入的反转 输入输入输入输入0 0,输出为,输出为,输出为,输出为1 1 输入输入输入输入1 1,输出为,输出为,输出为,输出为0 0-7-与(与(AND)&2 2个输入,真值表有个输入,真值表有4 4行行 只有当两个输入都为只有当两个输入都为只有当两个输入都
4、为只有当两个输入都为1 1时,输出为时,输出为时,输出为时,输出为1 1 其它情况,输出为其它情况,输出为其它情况,输出为其它情况,输出为0 0For x=0 or 1 x AND 0 0 0 AND x 0-8-或(或(OR)&2 2个输入,真值表有个输入,真值表有4 4行行 只有当两个输入都为只有当两个输入都为只有当两个输入都为只有当两个输入都为0 0时,输出为时,输出为时,输出为时,输出为0 0 其它情况,输出为其它情况,输出为其它情况,输出为其它情况,输出为1 1For x=0 or 1 x OR 1 1 1 OR x 1-9-异或(异或(XOR)&2 2个输入,真值表有个输入,真值表
5、有4 4行行 两个输入不同(相异)时,输出为两个输入不同(相异)时,输出为两个输入不同(相异)时,输出为两个输入不同(相异)时,输出为1 1 两个输入相同时,输出为两个输入相同时,输出为两个输入相同时,输出为两个输入相同时,输出为0 0For x=0 or 1 1 XOR x NOT x x XOR 1 NOT x-10-2、模式层次上的逻辑运算、模式层次上的逻辑运算&相同的运算符(相同的运算符(NOTNOT、ADNADN、OROR、XORXOR)可以)可以运用到运用到n n位位模式上位位模式上 对对对对n n位位模式逐位执行相同的逻辑运算位位模式逐位执行相同的逻辑运算位位模式逐位执行相同的逻
6、辑运算位位模式逐位执行相同的逻辑运算-11-逻辑运算示例逻辑运算示例&问题问题 对位模式对位模式对位模式对位模式1001100010011000执行执行执行执行NOTNOT运算运算运算运算&解答解答-12-逻辑运算示例逻辑运算示例&问题问题 对位模式对位模式对位模式对位模式1001100010011000和和和和0010101000101010执行执行执行执行ANDAND运算运算运算运算&解答解答For x=0 or 1 x OR 1 1 1 OR x 1-13-逻辑运算示例逻辑运算示例&问题问题 对位模式对位模式对位模式对位模式1001100110011001和和和和001011100010
7、1110执行执行执行执行OROR运算运算运算运算&解答解答-14-逻辑运算示例逻辑运算示例&问题问题 对位模式对位模式对位模式对位模式1001100110011001和和和和0010111000101110执行执行执行执行XORXOR运算运算运算运算&解答解答-15-3、应用、应用&求反求反 通过通过通过通过NOTNOT运算可以对整个模式求反运算可以对整个模式求反运算可以对整个模式求反运算可以对整个模式求反&对指定位对指定位复位(置复位(置0 0)通过构造第二个输入(掩码),执行通过构造第二个输入(掩码),执行通过构造第二个输入(掩码),执行通过构造第二个输入(掩码),执行ANDAND运算,可
8、以运算,可以运算,可以运算,可以对一个位模式的指定位复位对一个位模式的指定位复位对一个位模式的指定位复位对一个位模式的指定位复位 掩码中设置为掩码中设置为掩码中设置为掩码中设置为0 0的位,的位,的位,的位,ANDAND运算后第一个输入中对应位运算后第一个输入中对应位运算后第一个输入中对应位运算后第一个输入中对应位被复位;掩码中为被复位;掩码中为被复位;掩码中为被复位;掩码中为1 1的位,运算后第一个输入对应位保的位,运算后第一个输入对应位保的位,运算后第一个输入对应位保的位,运算后第一个输入对应位保持不变。持不变。持不变。持不变。-16-复位示例复位示例&问题问题 设置掩码,复位设置掩码,复
9、位设置掩码,复位设置掩码,复位8 8位位模式的最左位位模式的最左位位模式的最左位位模式的最左5 5位,以位,以位,以位,以1010011010100110为例为例为例为例进行验证进行验证进行验证进行验证&解答解答掩码为:掩码为:0000011100000111-17-应用应用&对指定位对指定位置位(置置位(置1 1)构造掩码,执行构造掩码,执行构造掩码,执行构造掩码,执行OROR运算,可以对位模式指定位置位。运算,可以对位模式指定位置位。运算,可以对位模式指定位置位。运算,可以对位模式指定位置位。掩码中设置为掩码中设置为掩码中设置为掩码中设置为1 1的位,运算后第一个输入对应位被置位;的位,运
10、算后第一个输入对应位被置位;的位,运算后第一个输入对应位被置位;的位,运算后第一个输入对应位被置位;掩码中设置为掩码中设置为掩码中设置为掩码中设置为0 0的位,运算后第一个输入对应位保持不的位,运算后第一个输入对应位保持不的位,运算后第一个输入对应位保持不的位,运算后第一个输入对应位保持不变。变。变。变。&对指定位对指定位反转反转 构造掩码,执行构造掩码,执行构造掩码,执行构造掩码,执行XORXOR运算,可以对位模式指定位反转。运算,可以对位模式指定位反转。运算,可以对位模式指定位反转。运算,可以对位模式指定位反转。掩码中设置为掩码中设置为掩码中设置为掩码中设置为1 1的位,运算后第一个输入对
11、应位被反转;的位,运算后第一个输入对应位被反转;的位,运算后第一个输入对应位被反转;的位,运算后第一个输入对应位被反转;掩码中设置为掩码中设置为掩码中设置为掩码中设置为0 0的位,运算后第一个输入对应位保持不的位,运算后第一个输入对应位保持不的位,运算后第一个输入对应位保持不的位,运算后第一个输入对应位保持不变。变。变。变。-18-置位示例置位示例&问题问题 设置掩码,置位设置掩码,置位设置掩码,置位设置掩码,置位8 8位位模式的最左位位模式的最左位位模式的最左位位模式的最左5 5位,以位,以位,以位,以1010011010100110为例为例为例为例进行验证进行验证进行验证进行验证&解答解答
12、掩码为:掩码为:1111100011111000-19-反转示例反转示例&问题问题 设置掩码,反转设置掩码,反转设置掩码,反转设置掩码,反转8 8位位模式的最左位位模式的最左位位模式的最左位位模式的最左5 5位,以位,以位,以位,以1010011010100110为例为例为例为例进行验证进行验证进行验证进行验证&解答解答掩码为:掩码为:1111100011111000-20-本章内容安排本章内容安排&逻辑运算逻辑运算&移位运算移位运算&算术运算算术运算-21-移位运算移位运算&基本概念基本概念 移位运算移动位模式中的位,改变其位置移位运算移动位模式中的位,改变其位置移位运算移动位模式中的位,改
13、变其位置移位运算移动位模式中的位,改变其位置 逻辑移位运算:不考虑符号位的移位运算逻辑移位运算:不考虑符号位的移位运算逻辑移位运算:不考虑符号位的移位运算逻辑移位运算:不考虑符号位的移位运算 算术移位运算:考虑符号位的移位运算算术移位运算:考虑符号位的移位运算算术移位运算:考虑符号位的移位运算算术移位运算:考虑符号位的移位运算-22-1、逻辑移位运算、逻辑移位运算&逻辑移位运算应用于无符号整数逻辑移位运算应用于无符号整数 逻辑移位逻辑移位逻辑移位逻辑移位11逻辑右移:每位向右移动,左侧补逻辑右移:每位向右移动,左侧补0 011逻辑左移:每位向左移动,右侧补逻辑左移:每位向左移动,右侧补0 0-
14、23-逻辑移位运算逻辑移位运算&逻辑移位运算应用于无符号整数逻辑移位运算应用于无符号整数 循环移位循环移位循环移位循环移位11逻辑右移:每位向右移动,移出的位补充到左侧逻辑右移:每位向右移动,移出的位补充到左侧11逻辑左移:每位向左移动,移出的位补充到右侧逻辑左移:每位向左移动,移出的位补充到右侧-24-逻辑移位示例逻辑移位示例&问题问题 对位模式对位模式对位模式对位模式1001100010011000执行逻辑左移运算执行逻辑左移运算执行逻辑左移运算执行逻辑左移运算&解答解答DiscardedAdded-25-循环移位示例循环移位示例&问题问题 对位模式对位模式对位模式对位模式10011000
15、10011000执行循环左移运算执行循环左移运算执行循环左移运算执行循环左移运算&解答解答-26-2、算术移位运算、算术移位运算&算术移位运算应用于二进制补码格式的带符号整算术移位运算应用于二进制补码格式的带符号整数数 算术右移:移动过程中保留符号位,产生除算术右移:移动过程中保留符号位,产生除算术右移:移动过程中保留符号位,产生除算术右移:移动过程中保留符号位,产生除2 2的效果的效果的效果的效果 算术左移:移动过程中丢弃符号位,如果新的符号位与算术左移:移动过程中丢弃符号位,如果新的符号位与算术左移:移动过程中丢弃符号位,如果新的符号位与算术左移:移动过程中丢弃符号位,如果新的符号位与原来
16、的符号相同,运算成功,否则产生溢出;算术左移原来的符号相同,运算成功,否则产生溢出;算术左移原来的符号相同,运算成功,否则产生溢出;算术左移原来的符号相同,运算成功,否则产生溢出;算术左移产生乘产生乘产生乘产生乘2 2的效果。的效果。的效果。的效果。-27-算术移位示例算术移位示例&问题问题 对位模式对位模式对位模式对位模式1001100110011001执行算术右移运算执行算术右移运算执行算术右移运算执行算术右移运算&解答解答原始数据为原始数据为-103-103,计算结果为,计算结果为-52-52-28-算术移位示例算术移位示例&问题问题 对位模式对位模式对位模式对位模式1101100111
17、011001执行算术左移运算执行算术左移运算执行算术左移运算执行算术左移运算&解答解答原始数据为原始数据为-39-39,计算结果为,计算结果为-78-78-29-算术移位示例算术移位示例&问题问题 对位模式对位模式对位模式对位模式0111111101111111执行算术左移运算执行算术左移运算执行算术左移运算执行算术左移运算&解答解答原始数据为原始数据为127127,计算结果为,计算结果为-2-2,因为预期结果因为预期结果254254无法用无法用8 8位存储位存储-30-操纵位的示例操纵位的示例&问题问题 判断判断判断判断8 8位位模式的右起第位位模式的右起第位位模式的右起第位位模式的右起第3
18、 3位是位是位是位是0 0还是还是还是还是1 1&解答解答-31-本章内容安排本章内容安排&逻辑运算逻辑运算&移位运算移位运算&算术运算算术运算-32-1、整数的算术运算、整数的算术运算&整数支持的算术运算整数支持的算术运算 整数支持加、减、乘、除等运算整数支持加、减、乘、除等运算整数支持加、减、乘、除等运算整数支持加、减、乘、除等运算 乘法和除法可以通过重复的加法(减法)来实现。乘法和除法可以通过重复的加法(减法)来实现。乘法和除法可以通过重复的加法(减法)来实现。乘法和除法可以通过重复的加法(减法)来实现。&两种编码格式的运算两种编码格式的运算 二进制补码的加减法二进制补码的加减法二进制补
19、码的加减法二进制补码的加减法 原码加绝对值的加减法原码加绝对值的加减法原码加绝对值的加减法原码加绝对值的加减法-33-二进制补码加减法二进制补码加减法&减法运算减法运算 遇到减法时,对第二个数(减数)做补码运算后,将减遇到减法时,对第二个数(减数)做补码运算后,将减遇到减法时,对第二个数(减数)做补码运算后,将减遇到减法时,对第二个数(减数)做补码运算后,将减法转变为加法。法转变为加法。法转变为加法。法转变为加法。A B A+(B+1)用(用(B+1B+1)表示)表示B B的补码的补码-34-加法运算加法运算&基本方法基本方法 按最右侧的位对齐按最右侧的位对齐按最右侧的位对齐按最右侧的位对齐
20、从右开始,逐列相加并加上一列的进位,从右开始,逐列相加并加上一列的进位,从右开始,逐列相加并加上一列的进位,从右开始,逐列相加并加上一列的进位,“逢二进一逢二进一逢二进一逢二进一”最高位进位丢弃最高位进位丢弃最高位进位丢弃最高位进位丢弃&加法表加法表-35-二进制补码加减法流程二进制补码加减法流程-36-二进制补码加法示例二进制补码加法示例&问题问题 AA和和和和B B以二进制补码形式存储,计算以二进制补码形式存储,计算以二进制补码形式存储,计算以二进制补码形式存储,计算A+BA+B A=(00010001)A=(00010001)2 2 B=(00010110)B=(00010110)2 2
21、&解答解答十进制检查:十进制检查:A A1717,B B2222,A+BA+B3939-37-二进制补码加法示例二进制补码加法示例&问题问题 AA和和和和B B以二进制补码形式存储,计算以二进制补码形式存储,计算以二进制补码形式存储,计算以二进制补码形式存储,计算A+BA+B A=(00011000)A=(00011000)2 2 B=(11101111)B=(11101111)2 2&解答解答十进制检查:十进制检查:A A2424,B B-17-17,A+BA+B7 7-38-二进制补码减法示例二进制补码减法示例&问题问题 AA和和和和B B以二进制补码形式存储,计算以二进制补码形式存储,计
22、算以二进制补码形式存储,计算以二进制补码形式存储,计算A-BA-B A=(00011000)A=(00011000)2 2 B=(11101111)B=(11101111)2 2&解答解答十进制检查:十进制检查:A A2424,B B-17-17,A-BA-B4141-39-二进制补码减法示例二进制补码减法示例&问题问题 AA和和和和B B以二进制补码形式存储,计算以二进制补码形式存储,计算以二进制补码形式存储,计算以二进制补码形式存储,计算A-BA-B A=(11011101)A=(11011101)2 2 B=(00010100)B=(00010100)2 2&解答解答十进制检查:十进制检
23、查:A A-35-35,B B2020,A-BA-B-55-55-40-二进制补码加法的溢出二进制补码加法的溢出&问题问题 AA和和和和B B以二进制补码形式存储,计算以二进制补码形式存储,计算以二进制补码形式存储,计算以二进制补码形式存储,计算A+BA+B A=(01111111)A=(01111111)2 2 B=(00000011)B=(00000011)2 2&解答解答十进制检查:十进制检查:A A127127,B B3 3,A+BA+B-126-126预期的结果预期的结果130130无法存储,产生溢出无法存储,产生溢出在计算机上进行算术运算时,确保在计算机上进行算术运算时,确保参与运
24、算参与运算的数的数以及以及运算结果运算结果在指定位分配可表示的区在指定位分配可表示的区间之内间之内-41-符号加绝对值整数的加减法符号加绝对值整数的加减法&符号加绝对值整数的加减法非常复杂符号加绝对值整数的加减法非常复杂 检查运算,如果是减法,变更第二个数的符号位;检查运算,如果是减法,变更第二个数的符号位;检查运算,如果是减法,变更第二个数的符号位;检查运算,如果是减法,变更第二个数的符号位;对两个数的符号位执行对两个数的符号位执行对两个数的符号位执行对两个数的符号位执行XORXOR运算,结果为运算,结果为运算,结果为运算,结果为0 0表示同号,表示同号,表示同号,表示同号,结果为结果为结果
25、为结果为1 1表示异号;表示异号;表示异号;表示异号;如果符号相同,绝对值相加,结果符号不变;如果符号相同,绝对值相加,结果符号不变;如果符号相同,绝对值相加,结果符号不变;如果符号相同,绝对值相加,结果符号不变;如果符号不同,计算如果符号不同,计算如果符号不同,计算如果符号不同,计算A-BA-B,减法时,取第二个数的补码,减法时,取第二个数的补码,减法时,取第二个数的补码,减法时,取第二个数的补码后相加,结果的符号取绝对值大者。后相加,结果的符号取绝对值大者。后相加,结果的符号取绝对值大者。后相加,结果的符号取绝对值大者。11若若A AMMBBMM,结果为正数,最后结果取,结果为正数,最后结
26、果取A A的符号;的符号;11若若A AMMB BMM,结果为负数,对结果求补码,最后结果取,结果为负数,对结果求补码,最后结果取B B的符号的符号-42-符号加绝对值整数的加减法流程符号加绝对值整数的加减法流程-43-符号加绝对值加法示例符号加绝对值加法示例&问题问题 AA和和和和B B以符号加绝对值形式存储,计算以符号加绝对值形式存储,计算以符号加绝对值形式存储,计算以符号加绝对值形式存储,计算A+BA+B A=(A=(0 0 0010001)0010001)2 2 B=(B=(1 1 0010110)0010110)2 2&解答解答十进制检查:十进制检查:A A1717,B B-22-2
27、2,A+BA+B-5-5异号相加,异号相加,R RMM=A=AMM+(B+(BMM+1)+1)-44-符号加绝对值减法示例符号加绝对值减法示例&问题问题 AA和和和和B B以符号加绝对值形式存储,计算以符号加绝对值形式存储,计算以符号加绝对值形式存储,计算以符号加绝对值形式存储,计算A-BA-B A=(A=(1 1 1010001)1010001)2 2 B=(B=(1 1 0010110)0010110)2 2&解答解答十进制检查:十进制检查:A A-81-81,B B-22-22,A+BA+B-59-59减法,反转减法,反转B B的符号,的符号,B B(0 0010110)(0 00101
28、10)2 2,异号相加,异号相加-45-2、实数的算术运算、实数的算术运算&实数支持的算术运算实数支持的算术运算 实数支持加、减、乘、除等运算实数支持加、减、乘、除等运算实数支持加、减、乘、除等运算实数支持加、减、乘、除等运算 实数的乘法涉及符号加绝对值表示的整数的乘法;实数实数的乘法涉及符号加绝对值表示的整数的乘法;实数实数的乘法涉及符号加绝对值表示的整数的乘法;实数实数的乘法涉及符号加绝对值表示的整数的乘法;实数除法涉及符号加绝对值表示的整数的除法。除法涉及符号加绝对值表示的整数的除法。除法涉及符号加绝对值表示的整数的除法。除法涉及符号加绝对值表示的整数的除法。&实数的加减法实数的加减法
29、以浮点数格式存储的实数加法和减法,可以简化为以浮点数格式存储的实数加法和减法,可以简化为以浮点数格式存储的实数加法和减法,可以简化为以浮点数格式存储的实数加法和减法,可以简化为小数小数小数小数点对齐后以符号加绝对值格式(符号加尾数)存储的两点对齐后以符号加绝对值格式(符号加尾数)存储的两点对齐后以符号加绝对值格式(符号加尾数)存储的两点对齐后以符号加绝对值格式(符号加尾数)存储的两个整数的加法和减法个整数的加法和减法个整数的加法和减法个整数的加法和减法。-47-实数加法示例实数加法示例&问题问题 展示计算机内展示计算机内展示计算机内展示计算机内(+5.75)+(+161.875)=(+167.
30、625)(+5.75)+(+161.875)=(+167.625)计算过程计算过程计算过程计算过程&解答解答浮点数表示浮点数表示-48-实数加法示例实数加法示例&问题问题 展示计算机内展示计算机内展示计算机内展示计算机内(+5.75)+(+161.875)=(+167.625)(+5.75)+(+161.875)=(+167.625)计算过程计算过程计算过程计算过程&解答解答去规范化去规范化-49-实数加法示例实数加法示例&问题问题 展示计算机内展示计算机内展示计算机内展示计算机内(+5.75)+(+161.875)=(+167.625)(+5.75)+(+161.875)=(+167.625
31、)计算过程计算过程计算过程计算过程&解答解答对齐尾数对齐尾数10000111100001111000010000111111101000011110000000000000101000011110000000000000000000000010111000000000000001011100000000000000-50-实数加法示例实数加法示例&问题问题 展示计算机内展示计算机内展示计算机内展示计算机内(+5.75)+(+161.875)=(+167.625)(+5.75)+(+161.875)=(+167.625)计算过程计算过程计算过程计算过程&解答解答执行符号加绝对值加法执行符号加绝对值加法-51-实数加法示例实数加法示例&问题问题 展示计算机内展示计算机内展示计算机内展示计算机内(+5.75)+(+161.875)=(+167.625)(+5.75)+(+161.875)=(+167.625)计算过程计算过程计算过程计算过程&解答解答重新规范化重新规范化E=(10000110)2=134 M=0100111101E=(10000110)2=134 M=0100111101结果:结果:(1.0100111101)(1.0100111101)2 2 2 2 134127134127=167.625=167.625
限制150内