计算机导论PPT第四章_数据运算

上传人:hs****ma 文档编号:577116896 上传时间:2024-08-21 格式:PPT 页数:71 大小:1.37MB
返回 下载 相关 举报
计算机导论PPT第四章_数据运算_第1页
第1页 / 共71页
计算机导论PPT第四章_数据运算_第2页
第2页 / 共71页
计算机导论PPT第四章_数据运算_第3页
第3页 / 共71页
计算机导论PPT第四章_数据运算_第4页
第4页 / 共71页
计算机导论PPT第四章_数据运算_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《计算机导论PPT第四章_数据运算》由会员分享,可在线阅读,更多相关《计算机导论PPT第四章_数据运算(71页珍藏版)》请在金锄头文库上搜索。

1、14数据运算数据运算 (Operations On Data ) 2q 列出三大类数据运算:逻辑、移位、算术列出三大类数据运算:逻辑、移位、算术q 在位模式上进行一元和二元逻辑运算在位模式上进行一元和二元逻辑运算q 区分逻辑移位运算和算术移位运算区分逻辑移位运算和算术移位运算q 在位模式上进行逻辑移位运算在位模式上进行逻辑移位运算q 对二进制补码形式存储的整数进行算术移位运算对二进制补码形式存储的整数进行算术移位运算q 对二进制补码形式存储的整数进行加减法运算对二进制补码形式存储的整数进行加减法运算q 对符号加绝对值形式存储的整数进行加减法运算对符号加绝对值形式存储的整数进行加减法运算q 对浮

2、点格式存储的实数进行加减法运算对浮点格式存储的实数进行加减法运算q 理解逻辑和算术运算的一些应用,如置位、复位等理解逻辑和算术运算的一些应用,如置位、复位等 目标目标通过本章的学习,同学们应该能够通过本章的学习,同学们应该能够:34-1 逻辑运算逻辑运算 LOGIC OPERATIONS u逻辑运算是对因果关系进行分析的一种运算。逻辑运算是对因果关系进行分析的一种运算。u逻逻辑辑运运算算结结果果并并不不表表示示数数值值大大小小,而而是是表表示示一一种种逻逻辑辑概概念念,通通常常用用来来测测试试真真假假值值,若若成成立立用用真真或或1表表示示,不成立用假或不成立用假或0表示。表示。u可以在位层次

3、和模式层次上定义逻辑运算。可以在位层次和模式层次上定义逻辑运算。u模模式式层层次次上上的的逻逻辑辑运运算算是是具具有有相相同同类类型型的的位位层层次次上上的的n个逻辑运算,个逻辑运算,n是模式中的位的数目是模式中的位的数目. 4位层次上的逻辑运算位层次上的逻辑运算Logic operations at bit level可以应用布尔代数中定义的运算去操纵二进制位可以应用布尔代数中定义的运算去操纵二进制位.为为纪纪念念乔乔治治.布布尔尔(George Boole)而而命命名名的的布布尔尔代代数数属属于逻辑的特殊数学领域于逻辑的特殊数学领域. 如果定义如果定义1个位作为逻辑值,则可对它进行逻辑运算

4、个位作为逻辑值,则可对它进行逻辑运算.逻逻辑辑运运算算接接收收1或或2个个位位来来生生成成1个个位位。若若逻逻辑辑运运算算作作用用在在1或或2个输入位上,就叫一元或二元运算。个输入位上,就叫一元或二元运算。四种被用来操纵二进制位的位层次上的运算四种被用来操纵二进制位的位层次上的运算: 非非NOT, 与与AND, 或或OR, 异或异或XOR.5非非NOT非运算实现逻辑否定,即进行求反运算。非运算实现逻辑否定,即进行求反运算。NOT 运算符是一元操作符运算符是一元操作符: 它只有一个输入它只有一个输入. 输出位是输入位的相反输出位是输入位的相反.6与运算又称逻辑乘,用符号与运算又称逻辑乘,用符号.

5、或或表示表示AND 运算符是二元运算符:有两个输入运算符是二元运算符:有两个输入 如果输入都是如果输入都是1,则输出是,则输出是1;其他情况下,输出都是;其他情况下,输出都是0与与AND对于对于 x = 0 or 1: x AND 0 0 、 0 AND x 0 i7或或OR或运算又称逻辑加,用符号或运算又称逻辑加,用符号+或或表示表示OR运算符是二元运算符:有两个输入运算符是二元运算符:有两个输入. 如果输入都是如果输入都是0,则输出为,则输出为0;其他情况下,输出都是;其他情况下,输出都是1.对于对于 x = 0 or 1 : x OR 1 1 、 1 OR x 1 i8异或运算用符号异或

6、运算用符号表示,表示,XOR也是二元运算符。也是二元运算符。与与OR的一点不同,如果输入都是的一点不同,如果输入都是1,则输出为,则输出为0。 如果输入相同,则输出为如果输入相同,则输出为0,否则为,否则为1。异或异或XORFor x = 0 or 1 1 XOR x NOT x x XOR 1 NOT x i9Example 4.1英语中英语中 “or” ,有时表示,有时表示“或或”,有时表示,有时表示“异或异或”。“or”表示表示“或或”“I would like to have a car or a house” I would like to have a car, a house o

7、r both(我希望有一辆车,一栋房子或者二者兼而有之)(我希望有一辆车,一栋房子或者二者兼而有之). “or”表示表示“异或异或” “Today is either Monday or Tuesday” Today is either Monday or Tuesday, but it cannot be both(今天不是星期一就是星期二,但不能两个都是)(今天不是星期一就是星期二,但不能两个都是).10Example 4.2XOR运运算算符符其其实实不不是是新新的的运运算算符符,能能用用其其他他三个运算符来模拟三个运算符来模拟. 下面两个表达式是等价的下面两个表达式是等价的x XOR y

8、 x AND (NOT y) OR (NOT x) AND y如果给出两个表达式的真值表,等价就可以得到证明如果给出两个表达式的真值表,等价就可以得到证明.11模式层次上的逻辑运算模式层次上的逻辑运算Logic operations at pattern level4个运算符个运算符 (NOT,AND,OR,XOR)可以被应用到可以被应用到n位模式位模式.对对NOT来说,就是把每个运算符应用于每个位来说,就是把每个运算符应用于每个位.对另对另3个运算符,就是把每个运算符应用于相应的位对个运算符,就是把每个运算符应用于相应的位对 .图图4.2 显示了带输入和输出模式的四个运算符显示了带输入和输出

9、模式的四个运算符.Figure 4.2 应用于位模式的逻辑运算符应用于位模式的逻辑运算符 12Example 4.3 用用NOT运算符来计算位模式运算符来计算位模式10011000. 解:解:注意:注意:NOT运算符把每个运算符把每个0变成变成1,把每个,把每个1变成变成0. 13Example 4.4用用AND运算符来计算位模式运算符来计算位模式 10011000 和和 00101010.解:注意:解:注意:只有输入中相应的位都为只有输入中相应的位都为1,输出的位才为,输出的位才为1.14Example 4.5 对位模式对位模式10011001 和和 00101110应用应用OR运算运算.解

10、:注意:解:注意:只有输入中相应的位都为只有输入中相应的位都为0,输出中的位才为,输出中的位才为0.15Example 4.6使用使用XOR运算符来计算位模式运算符来计算位模式10011001和和00101110. 解:解:输入相同,则输出为输入相同,则输出为0 P53错错注意:将该例的输出与注意:将该例的输出与Example 4.5进行比较,进行比较,区别在于该例中输入位都为区别在于该例中输入位都为1时,输出为时,输出为 016Applications四种逻辑运算可用于修改位模式四种逻辑运算可用于修改位模式.求反求反求反求反:NOTNOT的作用就是对整个模式求反的作用就是对整个模式求反的作用

11、就是对整个模式求反的作用就是对整个模式求反. .复位复位复位复位:ANDAND把一个位模式的指定位把一个位模式的指定位把一个位模式的指定位把一个位模式的指定位 置置置置0. 0.置位置位置位置位:OROR把一个位模式的指定位把一个位模式的指定位把一个位模式的指定位把一个位模式的指定位置置置置1. 1.反转反转反转反转:XORXOR把一个位模式的把一个位模式的把一个位模式的把一个位模式的指定位反转指定位反转指定位反转指定位反转. .位位位位模模模模式式式式可可可可以以以以与与与与另另另另一一一一个个个个位位位位模模模模式式式式进进进进行行行行与与与与、或或或或、异异异异或或或或运运运运算算算算而

12、被修改,另一个位模式就是所谓的掩码。而被修改,另一个位模式就是所谓的掩码。而被修改,另一个位模式就是所谓的掩码。而被修改,另一个位模式就是所谓的掩码。掩码用于修改另一个二进制位模式。掩码用于修改另一个二进制位模式。掩码用于修改另一个二进制位模式。掩码用于修改另一个二进制位模式。17Applicationsq 求反求反求反求反 (NOT) (NOT): NOT NOT的作用就是对整个模式求反的作用就是对整个模式求反的作用就是对整个模式求反的作用就是对整个模式求反 四种逻辑运算可用于修改位模式四种逻辑运算可用于修改位模式四种逻辑运算可用于修改位模式四种逻辑运算可用于修改位模式. .18q使指定的位

13、复位使指定的位复位 (AND)AND运算符特性:输入有一个运算符特性:输入有一个0,则输出是,则输出是0.把一个位模式的指定位复位(置把一个位模式的指定位复位(置0)。)。Input2称称为为掩掩码码,掩掩码码中中的的0位位对对Input1中中相相应应的位进行复位。的位进行复位。复位规则:复位规则:u目标位模式中需要置目标位模式中需要置目标位模式中需要置目标位模式中需要置0 0的位,掩码相应位设为的位,掩码相应位设为的位,掩码相应位设为的位,掩码相应位设为0 0;u目标位模式中需要保持不变的位,掩码相应位设为目标位模式中需要保持不变的位,掩码相应位设为目标位模式中需要保持不变的位,掩码相应位设

14、为目标位模式中需要保持不变的位,掩码相应位设为1 119Example 4.7 使用掩码复位模式的最左使用掩码复位模式的最左5位。位。用模式用模式10100110测试掩码测试掩码.解:解:掩码是掩码是00000111,应用掩码的结果是,应用掩码的结果是:20Example 使用使用8个水泵来给城市供水。个水泵来给城市供水。水泵的开或关可以用水泵的开或关可以用8位二进制模式来描述。位二进制模式来描述。现在假设将现在假设将5号水泵关闭,假设关为号水泵关闭,假设关为0。什么样的运算和掩码可以描述这种情况?什么样的运算和掩码可以描述这种情况?解:解: 原状态是:原状态是:0 1 1 1 1 0 0 1

15、 掩码是:掩码是:1 1 1 0 1 1 1 1 应用掩码的结果是:应用掩码的结果是:0 1 1 0 1 0 0 1AND复位(置复位(置0)21q 对指定的位置位对指定的位置位 (OR)或运算的一个应用就是把位模式的指定位置位(置或运算的一个应用就是把位模式的指定位置位(置1)OR运算符特性:输入有一个运算符特性:输入有一个1,则输出是,则输出是1.掩码中的掩码中的1位对第一个输入中的相应位进行置位,位对第一个输入中的相应位进行置位,掩码中的掩码中的0位使第一个输入中相应的位保持不变。位使第一个输入中相应的位保持不变。创建置位掩码的规则:创建置位掩码的规则:l目标位模式中需要置目标位模式中需

16、要置1的位,掩码相应位设为的位,掩码相应位设为1l目标位模式中需要保持不变的位,掩码相应位设为目标位模式中需要保持不变的位,掩码相应位设为022Example 4.8 用掩码来把一个位模式的最左用掩码来把一个位模式的最左5位置位位置位. 用模式用模式10100110检验掩码检验掩码. 解:解:此掩码为此掩码为11111000,应用此掩码的结果为,应用此掩码的结果为:23Example 解:解: 原状态是:原状态是: 0 1 1 1 1 0 0 1 掩码是:掩码是: 0 0 0 0 0 1 0 0 应用掩码的结果是:应用掩码的结果是: 0 1 1 1 1 1 0 1OR置位(置置位(置1)一个电

17、厂使用一个电厂使用8个水泵来给城市供水。个水泵来给城市供水。水泵的开或关可以用水泵的开或关可以用8位二进制模式来描述。位二进制模式来描述。现在假设将现在假设将3号水泵打开,假设关为号水泵打开,假设关为0。什么样的运算和掩码可以描述这种情况?什么样的运算和掩码可以描述这种情况?24q使指定的位反转使指定的位反转 (XOR)异或运算符的一个应用就是使指定的位反转异或运算符的一个应用就是使指定的位反转即把指定位由即把指定位由0变成变成1,由,由1变成变成0.掩码中的掩码中的1位对第一个输入中相应的位进行反转。位对第一个输入中相应的位进行反转。掩码中的掩码中的0位使第一个输入中相应的位保持不变。位使第

18、一个输入中相应的位保持不变。创建反转掩码的规则:创建反转掩码的规则:l目标位模式中需要反转的位,掩码相应位设为目标位模式中需要反转的位,掩码相应位设为1l目标位模式中需要保持不变的位,掩码相应位设为目标位模式中需要保持不变的位,掩码相应位设为0注意注意NOT与与NOR的区别的区别25Example 4.9用掩码来反转一个模式的最左边用掩码来反转一个模式的最左边5位位. 用模式用模式10100110检验掩码检验掩码.解:掩码为解:掩码为11111000. 运用掩码后的结果为运用掩码后的结果为:264-2 移位运算移位运算 SHIFT OPERATIONS 移动模式中的位,改变位的位置。移动模式中

19、的位,改变位的位置。它们能向左或向右移动位。它们能向左或向右移动位。可以把移位运算分成两大类可以把移位运算分成两大类 : l逻辑移位运算逻辑移位运算l算术移位运算算术移位运算27逻辑移位运算逻辑移位运算Logical shift operations逻辑移位运算应用于不带符号位的数的模式。逻辑移位运算应用于不带符号位的数的模式。原因是这些移位运算可能会改变数的符号,原因是这些移位运算可能会改变数的符号,此符号是由模式中最左位定义的。此符号是由模式中最左位定义的。区分两类逻辑移位运算,区分两类逻辑移位运算,q 逻辑移位逻辑移位q 循环移位(旋转)循环移位(旋转)28Figure 4.3 逻辑移位

20、运算逻辑移位运算 逻辑右移运算:把每一位向右移动一个位置。逻辑右移运算:把每一位向右移动一个位置。在在n位模式中,最右位被丢弃,最左位填位模式中,最右位被丢弃,最左位填0。逻辑左移运算:把每一位向左移动一个位置。逻辑左移运算:把每一位向左移动一个位置。在在n位模式中,最左位被丢弃,最右位填位模式中,最左位被丢弃,最右位填0。q 逻辑移位逻辑移位29Example 4.10对位模式对位模式10011000使用逻辑左移运算。使用逻辑左移运算。解:解:最左位被丢弃,最左位被丢弃,0 0作为最右位被插入。作为最右位被插入。Discarded Added 30Figure 4.4 循环移位运算循环移位运

21、算 q循环移位(旋转)循环移位(旋转)循环移位运算:没有位丢弃或增加循环移位运算:没有位丢弃或增加循循环环右右移移(右右旋旋转转):每每一一位位向向右右移移动动一一个个位位置置,最右位被回环,成为最左位。最右位被回环,成为最左位。31Example 4.11对位模式对位模式10011000使用循环左移运算。使用循环左移运算。解:解:最左位被回环,成为最右位。最左位被回环,成为最右位。32算术移位运算算术移位运算Arithmetic shift operations算算术术移移位位运运算算假假定定位位模模式式是是用用二二进进制制补补码码格格式式表表示示的的带符号位的整数。这些运算不应改变符号位。

22、带符号位的整数。这些运算不应改变符号位。算算术术右右移移用用来来对对整整数数除除以以2 2:保保留留符符号号位位,同同时时把把符符号号位复制到相邻的右边位。位复制到相邻的右边位。算术算术左移左移用来对整数乘以用来对整数乘以2 2:丢弃符号位丢弃符号位,右插,右插0 0。( (判断符号位判断符号位:若符号不变,合法。否则溢出,非法:若符号不变,合法。否则溢出,非法) )Figure 4.5 算术移位运算算术移位运算 33Example 4.12对位模式对位模式10011001使用算术右移,使用算术右移,模式是二进制补码格式的整数模式是二进制补码格式的整数 解:解:最左位被保留,被复制到相邻的右边

23、的位中。最左位被保留,被复制到相邻的右边的位中。原始数是原始数是-103,新的数是,新的数是-52,它是它是-103被除以被除以2并取整的结果。并取整的结果。 34Example 4.13对位模式对位模式11011001使用算术左移,使用算术左移,模式是二进制补码格式的整数模式是二进制补码格式的整数 解:解:最左位被丢弃,最左位被丢弃,0 0作为最右位被插入。作为最右位被插入。原始数是原始数是-39,新数是,新数是-78,原始数被乘以,原始数被乘以2。因为没有下溢的发生,所以运算合法。因为没有下溢的发生,所以运算合法。35Example 4.14对位模式对位模式01111111使用算术左移,使

24、用算术左移,模式是二进制补码格式的整数。模式是二进制补码格式的整数。 解解:最左位被丢弃,最左位被丢弃,0 0作为最右位被插入。作为最右位被插入。原始数是原始数是127127,新的数是,新的数是2 2。上溢发生上溢发生,结果非法。,结果非法。期望是期望是127 127 2 = 254 2 = 254,该数不能用,该数不能用8 8位模式表示。位模式表示。左移判断符号位,右移符号位保留左移判断符号位,右移符号位保留 36Example 4.15逻辑运算和逻辑移位运算提供了操纵位模式的工具。逻辑运算和逻辑移位运算提供了操纵位模式的工具。假假设设有有一一个个模模式式,在在判判断断过过程程中中使使用用此

25、此模模式式的的第第三三位位(从右起),需要知道这特殊的位是(从右起),需要知道这特殊的位是0 0或或1 1。我们可以测试结果:我们可以测试结果:如果结果是无符号的整数如果结果是无符号的整数1 1,那么目标位就是,那么目标位就是1 1;如果结果是无符号的整数如果结果是无符号的整数0 0,那么目标位就是,那么目标位就是0 0。374-3 算术运算算术运算 ARITHMETIC OPERATIONS算术运算包括加、减、乘、除等,算术运算包括加、减、乘、除等,适用于整数和浮点数。适用于整数和浮点数。38整数的算术运算整数的算术运算Arithmetic operations on integers 类似

26、加、减、乘、除等的算术运算均适用于整数。类似加、减、乘、除等的算术运算均适用于整数。类似加、减、乘、除等的算术运算均适用于整数。类似加、减、乘、除等的算术运算均适用于整数。虽虽虽虽然然然然整整整整数数数数的的的的乘乘乘乘法法法法(除除除除法法法法)能能能能通通通通过过过过重重重重复复复复的的的的加加加加法法法法(减减减减法法法法)来实现,但程序是低效的。来实现,但程序是低效的。来实现,但程序是低效的。来实现,但程序是低效的。对于乘法和除法有更高效的程序,如对于乘法和除法有更高效的程序,如对于乘法和除法有更高效的程序,如对于乘法和除法有更高效的程序,如BoothBoothBoothBooth程序

27、程序程序程序本课程只讨论整数的加法和减法。本课程只讨论整数的加法和减法。本课程只讨论整数的加法和减法。本课程只讨论整数的加法和减法。39二进制补码整数的加减法二进制补码整数的加减法Twos complement integers 整数通常以二进制补码形式存储。整数通常以二进制补码形式存储。模模的的概概念念可可以以帮帮助助理理解解补补码码:以以12为为模模的的系系统统中中,加加9和和减减3效效果果一一样样,凡凡是是减减3运运算算,都都可可以以用用加加9来代替。对来代替。对“模模”而言,而言,9和和3互为补数。互为补数。思考思考:把把1个整数加到它的补码上的结果是什么?个整数加到它的补码上的结果是

28、什么?对于对于1个整数个整数B , B + ( B + 1) ?40二进制补码整数的加减法二进制补码整数的加减法Twos complement integers 补码表示法的优点:加法和减法之间没有区别。补码表示法的优点:加法和减法之间没有区别。当当遇遇到到减减法法运运算算时时,计计算算机机只只简简单单地地把把它它转转变变为为加法,对第二个数进行二进制的补码运算。加法,对第二个数进行二进制的补码运算。A B A + (B + 1) 这里的这里的(B + 1)表示表示B的补码的补码 41补码:只需要讨论加法补码:只需要讨论加法列列相加,若有进位,就加到下一列,舍最后一列进位列列相加,若有进位,就

29、加到下一列,舍最后一列进位 每一列中,如果没有进位,就两位相加。每一列中,如果没有进位,就两位相加。如果有从前一列来的进位,就三位相加。如果有从前一列来的进位,就三位相加。下表显示了进位下表显示了进位(Carry)、和、和(Sum)。42Figure 4.6 二进制补码格式表示的整数加法和减法二进制补码格式表示的整数加法和减法 43Example 4.16以二进制补码格式存储两个整数以二进制补码格式存储两个整数A和和B,A+B? 解:运算是相加,解:运算是相加,A被加到被加到B上,结果存储在上,结果存储在R中。中。A = (00010001)2 B = (00010110)2用十进制检查结果:

30、用十进制检查结果: (+17) + (+22) = (+39).44Example 4.17以二进制补码格式存储两个整数以二进制补码格式存储两个整数A和和B,A+B? 解:运算是相加,解:运算是相加,A被加到被加到B上,结果存储在上,结果存储在R中。中。A = (00011000)2 B = (11101111)2用十进制检查结果:用十进制检查结果:(+24) + (-17) = (+7)。45Example 4.18以二进制补码格式存储两个整数以二进制补码格式存储两个整数A和和B,A-B?解:相减,解:相减,A被加到被加到(B + 1)上,结果存储在上,结果存储在R中。中。A = (0001

31、1000)2 B = (11101111)2(+24) - (-17) = (+41)46Example 4.19以二进制补码格式存储两个整数以二进制补码格式存储两个整数A和和B,A-B?解:相减,解:相减,A被加到(被加到(B+1)上,结果存储在)上,结果存储在R中。中。A = (11011101)2 B = (00010100)2(35) (+20) = (55).47Example 4.20以二进制补码格式存储两个整数以二进制补码格式存储两个整数A和和B,如何,如何A+B? 解:运算是相加,解:运算是相加,A被加到被加到B上,结果存储在上,结果存储在R中。中。A = (01111111)

32、2 B = (00000011)2期望的结果是期望的结果是 127 + 3 = 130, 但答案是但答案是126。由于上溢,由于上溢,+130 不是不是128 +127之间的范围。之间的范围。P58错错 ,最右边第一位没有进位,最右边第一位没有进位48 课堂测验课堂测验 以二进制补码格式存储两个整数以二进制补码格式存储两个整数A和和B,解:解:1、A+B=00010011 负负+负负=正正 , 发生溢出发生溢出 2、A-B=A+(B+1)=00010001 负负+正正 不会溢出不会溢出 173、B-A=B+(A+1)=11101111 负负+正正 不会溢出不会溢出 -17验证验证A=-110,

33、B=-127A = (10010010)2 B = (10000001)2求求A+B? A-B? B-A?49当进行算术运算时,当进行算术运算时,要记住:每个数字和结果应该在分配的要记住:每个数字和结果应该在分配的二进制位的定义范围之内。二进制位的定义范围之内。 i501、观察法、观察法正正+负,负负,负+正不会发生溢出正不会发生溢出正正+正(为负,溢出),负正(为负,溢出),负+负(为正,溢出)负(为正,溢出) 判断溢出的方法判断溢出的方法 51 判断溢出的方法判断溢出的方法 2、双高位判别法、双高位判别法最高位和次高位的进位是否相同?最高位和次高位的进位是否相同? 相同,不溢出;不同,溢出

34、相同,不溢出;不同,溢出Cs表示符号位进位情况:表示符号位进位情况:l若符号位发生进位,则若符号位发生进位,则Cs=1,否则,否则Cs=0Cp表示最高位数值位进位情况:表示最高位数值位进位情况:l若最高数值位发生进位,则若最高数值位发生进位,则Cp=1,否则,否则Cp=052 判断溢出的方法判断溢出的方法-双高位判别法双高位判别法当两个正数补码相加时,若数值部分之和大于当两个正数补码相加时,若数值部分之和大于2n-1,则数值位必有进位,则数值位必有进位,Cp=1;而符号位无进位,;而符号位无进位, Cs=0。则则Cs Cp的状态为的状态为01,溢出,溢出。当两个负数补码相加时,若数值部分绝对值

35、之和大于当两个负数补码相加时,若数值部分绝对值之和大于2n-1,则数值部分补码之和一定小于,则数值部分补码之和一定小于2n-1,必有,必有Cp=0;而符号位却有进位,而符号位却有进位, Cs=1。则则Cs Cp的状态为的状态为10,溢出,溢出。Cs Cp的状态相同,即的状态相同,即“00”或或“11”时,不溢出。时,不溢出。53符号加绝对值整数的加减法(原码加减)符号加绝对值整数的加减法(原码加减)sign-and-magnitude integers用符号加绝对值表示的整数加减法看起来非常复杂。用符号加绝对值表示的整数加减法看起来非常复杂。有有4种不同的符号组合(正正,正负,负正,负负)种不

36、同的符号组合(正正,正负,负正,负负)对于整数加减法要考虑对于整数加减法要考虑8种不同情况:种不同情况:正正,正负,负正,负负正正,正负,负正,负负正正,正负,负正,负负正正,正负,负正,负负但是,如果先检查运算符号,则可以简化这些情况但是,如果先检查运算符号,则可以简化这些情况如图如图4-7所示。所示。54 Figure 4.7 符号加绝对值格式的整数的加法和减法符号加绝对值格式的整数的加法和减法55符号加绝对值格式的整数的加法和减法计算步骤:符号加绝对值格式的整数的加法和减法计算步骤:1、判断加法减法运算,、判断加法减法运算, 若相加,则若相加,则B的符号位的符号位Bs不变不变 若相减,则

37、若相减,则B的符号位的符号位Bs取反,即取反,即Bs 2、判断、判断As和和Bs的符号是否相同,的符号是否相同, 若相同若相同As XOR Bs0,则,则RMAMBM,RsAs (符号相同,判断(符号相同,判断RM是否上溢)是否上溢) 若不同若不同As XOR Bs1,则,则判断判断AM和和BM的大小的大小 若若AMBM,则,则RsAs, RMAM(BM+ 1) 若若AMBM,则,则RsBs, RMAM(BM+ 1) 最终最终RM要取补码,要取补码, RMRM+ 156Example 4.21以符号加绝对值格式存储两整数以符号加绝对值格式存储两整数A和和B,如何,如何AB?解:解:1. 相加,

38、相加,B的符号位的符号位Bs不变不变 2. AS XOR BS = 0,A和和B的符号相同,的符号相同, 则则RM = AM + BM,RsAs 符号相同,判断符号相同,判断RM是否溢出是否溢出 没有溢出,所以没有溢出,所以R 00100111 (+17) + (22) = (39)。 A = (0 0010001)2 B = (0 0010110)257Example 4.22以符号加绝对值格式存储两整数以符号加绝对值格式存储两整数A和和B,如何,如何AB ?解:解:相加,相加,B的符号没有改变的符号没有改变S = AS XOR BS = 1; RM = AM + (BM +1)。AMBM,

39、则,则RsAs,RM 的值就是最终的值。的值就是最终的值。(81) (22) = (59)。A = (1 1010001)2 B = (1 0010110)2书书P60错错 运算是相减,运算是相减,BS 59实数的算术运算实数的算术运算Arithmetic operations on reals加加、减减、乘乘、除除的的算算术术运运算算都都能能用用于于浮浮点点数数格格式式存储的实数上。存储的实数上。两两实实数数乘乘法法涉涉及及两两个个用用符符号号加加绝绝对对值值表表示示的的整整数数乘乘法法;两两实实数数除除法法涉涉及及两两个个用用符符号号加加绝绝对对值值表表示示的整数除法。的整数除法。本课程只

40、讨论实数的加法和减法。本课程只讨论实数的加法和减法。60实数的加减法实数的加减法Addition and subtraction of reals以浮点数格式存储的实数加法和减法简化为:以浮点数格式存储的实数加法和减法简化为:小小数数点点对对齐齐后后以以符符号号加加绝绝对对值值格格式式(符符号号和和尾尾数数的组合的组合)存储的两整数的加法和减法。)存储的两整数的加法和减法。图图4-8显示了处理过程。显示了处理过程。61 Figure 4.8 浮点数格式实数的加法和减法浮点数格式实数的加法和减法 62实数的加减法实数的加减法Addition and subtraction of reals处理过

41、程:处理过程:1、判断、判断A、B是否为是否为0,可直接输出,可直接输出R=A或或B2、如果、如果A-B,需要改变,需要改变Bs3、去规范化(尾数隐含的、去规范化(尾数隐含的1,增加指数),增加指数)4、对齐指数(移位尾数)、对齐指数(移位尾数)如如1.11101*24+1.01*22,需要对齐,需要对齐,去规范化,去规范化, 0.111101*25+0.101*23指数对齐,变为指数对齐,变为5, 0. 111101 *25+0.00101*25 5、符号和尾数的组合相加(符号加绝对值)、符号和尾数的组合相加(符号加绝对值)6、规范化、规范化 1.000111*25 (书(书P62错)错)

42、63Example 4.24计算机是如何计算结果的:计算机是如何计算结果的:(+5.75) + (+161.875) = (+167.625).解:这两个数以浮点数格式存储。解:这两个数以浮点数格式存储。需要记住每个数字有隐含的需要记住每个数字有隐含的1 1(它只是假设的,没有被存储)。(它只是假设的,没有被存储)。64Example 4.24 (续续)给尾数增加隐含的给尾数增加隐含的1,增加指数进行去规范化。,增加指数进行去规范化。两个去规范化的尾数都是两个去规范化的尾数都是24位,包含了隐含的位,包含了隐含的1。每个指数都被增加了每个指数都被增加了1。65Example 4.24 (续续)

43、小小数数点点对对齐齐,增增加加较较小小的的指指数数,即即增增加加第第1个个指数,右移它的尾数指数,右移它的尾数5位,位,进进行行符符号号加加绝绝对对值值加加法法,把把数数的的符符号号和和尾尾数数看成是符号加绝对值表示的整数。看成是符号加绝对值表示的整数。66Example 4.24 (续续) 规范化,尾数只要规范化,尾数只要23位位E=(10000110)2=134 M=0100111101结果是结果是(1.0100111101)22134127=(10100111.101)2 = 167.62567Example 4.25显示计算机是如何计算结果的:显示计算机是如何计算结果的:(+5.75)

44、 + (7.0234375) = 1.2734375解:这两个数以浮点数格式存储,如下所示。解:这两个数以浮点数格式存储,如下所示。每个数字隐含的每个数字隐含的1,去规范化的结果为:,去规范化的结果为:68Example 4.25 (续续)两指数是相同的,因此不需要对齐,两指数是相同的,因此不需要对齐,所以在符号和尾数的组合上应用加法运算,所以在符号和尾数的组合上应用加法运算,S = AS XOR BS = 1, 则则RM = AM + (BM +1)(BM +1)0001 1111 0100 0000 0000 0000AMBM,则,则RsBs,最终需要取,最终需要取 RM的二进制补码。的二

45、进制补码。RM = AM + (BM +1) 1011 1000 0000 0000 0000 0000 0001 1111 0100 0000 0000 0000 1101 0111 0100 0000 0000 0000最终需要取最终需要取 RM的二进制补码,的二进制补码, 0010 1000 1100 0000 0000 000069Example 4.25 (续续)则得到的结果为:则得到的结果为:现在需要规范化,现在需要规范化,尾数左移三位,降低指数三次:尾数左移三位,降低指数三次:70Example 4.25 (续续)尾数需要尾数需要23位,位,结果是结果是 R = 2127127 1.0100011 = 1.2734375,正是所期望的。正是所期望的。71习题习题,书书P64-6617-54, 56-60

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 医学现状与发展

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号