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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

14数据运算(OperationsOnData)2列出三大类数据运算:逻辑、移位、算术在位模式上进行一元和二元逻辑运算区分逻辑移位运算和算术移位运算在位模式上进行逻辑移位运算对二进制补码形式存储的整数进行算术移位运算对二进制补码形式存储的整数进行加减法运算对符号加绝对值形式存储的整数进行加减法运算对浮点格式存储的实数进行加减法运算理解逻辑和算术运算的一些应用,如置位、复位等目标通过本章的学习,同学们应该能够:34-1逻辑运算LOGICOPERATIONS逻辑运算是对因果关系进行分析的一种运算。逻辑运算结果并不表示数值大小,而是表示一种逻辑概念,通常用来测试真假值,若成立用真或1表示,不成立用假或0表示。可以在位层次和模式层次上定义逻辑运算。模式层次上的逻辑运算是具有相同类型的位层次上的n个逻辑运算,n是模式中的位的数目.4位层次上的逻辑运算Logicoperationsatbitlevel可以应用布尔代数中定义的运算去操纵二进制位.为纪念乔治.布尔(GeorgeBoole)而命名的布尔代数属于逻辑的特殊数学领域.如果定义1个位作为逻辑值,则可对它进行逻辑运算.逻辑运算接收1或2个位来生成1个位。若逻辑运算作用在1或2个输入位上,就叫一元或二元运算。四种被用来操纵二进制位的位层次上的运算:非NOT,与AND,或OR,异或XOR.5非NOT非运算实现逻辑否定,即进行求反运算。NOT运算符是一元操作符:它只有一个输入.输出位是输入位的相反.6与运算又称逻辑乘,用符号.或∧表示AND运算符是二元运算符:有两个输入如果输入都是1,则输出是1;其他情况下,输出都是0与AND对于x=0or1:xAND0→0、0ANDx→0i7或OR或运算又称逻辑加,用符号+或∨表示OR运算符是二元运算符:有两个输入.如果输入都是0,则输出为0;其他情况下,输出都是1.对于x=0or1:xOR1→1、1ORx→1i8异或运算用符号⊕表示,XOR也是二元运算符。与OR的一点不同,如果输入都是1,则输出为0。如果输入相同,则输出为0,否则为1。异或XORForx=0or11XORx→NOTxxXOR1→NOTxi9Example4.1英语中“or”,有时表示“或”,有时表示“异或”。“or”表示“或”“Iwouldliketohaveacarorahouse”Iwouldliketohaveacar,ahouseorboth(我希望有一辆车,一栋房子或者二者兼而有之).“or”表示“异或”“TodayiseitherMondayorTuesday”TodayiseitherMondayorTuesday,butitcannotbeboth(今天不是星期一就是星期二,但不能两个都是).10Example4.2XOR运算符其实不是新的运算符,能用其他三个运算符来模拟.下面两个表达式是等价的xXORy↔[xAND(NOTy)]OR[(NOTx)ANDy]如果给出两个表达式的真值表,等价就可以得到证明.11模式层次上的逻辑运算Logicoperationsatpatternlevel4个运算符(NOT,AND,OR,XOR)可以被应用到n位模式.对NOT来说,就是把每个运算符应用于每个位.对另3个运算符,就是把每个运算符应用于相应的位对.图4.2显示了带输入和输出模式的四个运算符.Figure4.2应用于位模式的逻辑运算符12Example4.3用NOT运算符来计算位模式10011000.解:注意:NOT运算符把每个0变成1,把每个1变成0.13Example4.4用AND运算符来计算位模式10011000和00101010.解:注意:只有输入中相应的位都为1,输出的位才为1.14Example4.5对位模式10011001和00101110应用OR运算.解:注意:只有输入中相应的位都为0,输出中的位才为0.15Example4.6使用XOR运算符来计算位模式10011001和00101110.解:输入相同,则输出为0P53错注意:将该例的输出与Example4.5进行比较,区别在于该例中输入位都为1时,输出为016Applications四种逻辑运算可用于修改位模式.求反:NOT的作用就是对整个模式求反.复位:AND把一个位模式的指定位置0.置位:OR把一个位模式的指定位置1.反转:XOR把一个位模式的指定位反转.位模式可以与另一个位模式进行与、或、异或运算而被修改,另一个位模式就是所谓的掩码。掩码用于修改另一个二进制位模式。17Applications求反(NOT):NOT的作用就是对整个模式求反四种逻辑运算可用于修改位模式.18使指定的位复位(AND)AND运算符特性:输入有一个0,则输出是0.把一个位模式的指定位复位(置0)。Input2称为掩码,掩码中的0位对Input1中相应的位进行复位。复位规则:目标位模式中需要置0的位,掩码相应位设为0;目标位模式中需要保持不变的位,掩码相应位设为119Example4.7使用掩码复位模式的最左5位。用模式10100110测试掩码.解:掩码是00000111,应用掩码的结果是:20Example使用8个水泵来给城市供水。水泵的开或关可以用8位二进制模式来描述。现在假设将5号水泵关闭,假设关为0。什么样的运算和掩码可以描述这种情况?解:原状态是:01111001掩码是:11101111应用掩码的结果是:01101001AND复位(置0)21对指定的位置位(OR)或运算的一个应用就是把位模式的指定位置位(置1)OR运算符特性:输入有一个1,则输出是1.掩码中的1位对第一个输入中的相应位进行置位,掩码中的0位使第一个输入中相应的位保持不变。创建置位掩码的规则:目标位模式中需要置1的位,掩码相应位设为1目标位模式中需要保持不变的位,掩码相应位设为022Example4.8用掩码来把一个位模式的最左5位置位.用模式10100110检验掩码.解:此掩码为11111000,应用此掩码的结果为:23Example解:原状态是:01111001掩码是:00000100应用掩码的结果是:01111101OR置位(置1)一个电厂使用8个水泵来给城市供水。水泵的开或关可以用8位二进制模式来描述。现在假设将3号水泵打开,假设关为0。什么样的运算和掩码可以描述这种情况?24使指定的位反转(XOR)异或运算符的一个应用就是使指定的位反转即把指定位由0变成1,由1变成0.掩码中的1位对第一个输入中相应的位进行反转。掩码中的0位使第一个输入中相应的位保持不变。创建反转掩码的规则:目标位模式中需要反转的位,掩码相应位设为1目标位模式中需要保持不变的位,掩码相应位设为0注意NOT与NOR的区别25Example4.9用掩码来反转一个模式的最左边5位.用模式10100110检验掩码.解:掩码为11111000.运用掩码后的结果为:264-2移位运算SHIFTOPERATIONS移动模式中的位,改变位的位置。它们能向左或向右移动位。可以把移位运算分成两大类:逻辑移位运算算术移位运算27逻辑移位运算Logicalshiftoperations逻辑移位运算应用于不带符号位的数的模式。原因是这些移位运算可能会改变数的符号,此符号是由模式中最左位定义的。区分两类逻辑移位运算,逻辑移位循环移位(旋转)28Figure4.3逻辑移位运算逻辑右移运算:把每一位向右移动一个位置。在n位模式中,最右位被丢弃,最左位填0。逻辑左移运算:把每一位向左移动一个位置。在n位模式中,最左位被丢弃,最右位填0。逻辑移位29Example4.10对位模式10011000使用逻辑左移运算。解:最左位被丢弃,0作为最右位被插入。DiscardedAdded30Figure4.4循环移位运算循环移位(旋转)循环移位运算:没有位丢弃或增加循环右移(右旋转):每一位向右移动一个位置,最右位被回环,成为最左位。31Example4.11对位模式10011000使用循环左移运算。解:最左位被回环,成为最右位。32算术移位运算Arithmeticshiftoperations算术移位运算假定位模式是用二进制补码格式表示的带符号位的整数。这些运算不应改变符号位。算术右移用来对整数除以2:保留符号位,同时把符号位复制到相邻的右边位。算术左移用来对整数乘以2:丢弃符号位,右插0。(判断符号位:若符号不变,合法。否则溢出,非法)Figure4.5算术移位运算33Example4.12对位模式10011001使用算术右移,模式是二进制补码格式的整数解:最左位被保留,被复制到相邻的右边的位中。原始数是-103,新的数是-52,它是-103被除以2并取整的结果。34Example4.13对位模式11011001使用算术左移,模式是二进制补码格式的整数解:最左位被丢弃,0作为最右位被插入。原始数是-39,新数是-78,原始数被乘以2。因为没有下溢的发生,所以运算合法。35Example4.14对位模式01111111使用算术左移,模式是二进制补码格式的整数。解:最左位被丢弃,0作为最右位被插入。原始数是127,新的数是−2。上溢发生,结果非法。期望是127×2=254,该数不能用8位模式表示。左移判断符号位,右移符号位保留36Example4.15逻辑运算和逻辑移位运算提供了操纵位模式的工具。假设有一个模式,在判断过程中使用此模式的第三位(从右起),需要知道这特殊的位是0或1。我们可以测试结果:如果结果是无符号的整数1,那么目标位就是1;如果结果是无符号的整数0,那么目标位就是0。374-3算术运算ARITHMETICOPERATIONS算术运算包括加、减、乘、除等,适用于整数和浮点数。38整数的算术运算Arithmeticoperationsonintegers类似加、减、乘、除等的算术运算均适用于整数。虽然整数的乘法(除法)能通过重复的加法(减法)来实现,但程序是低效的。对于乘法和除法有更高效的程序,如Booth程序本课程只讨论整数的加法和减法。39二进制补码整数的加减法Two’scomplementintegers整数通常以二进制补码形式存储。模的概念可以帮助理解补码:以12为模的系统中,加9和减3效果一样,凡是减3运算,都可以用加9来代替。对“模”而言,9和3互为补数。思考:把1个整数加到它的补码上的结果是什么?对于1个整数B,B+(B+1)=?40二进制补码整数的加减法Two’scomplementintegers补码表示法的优点:加法和减法之间没有区别。当遇到减法运算时,计算机只简单地把它转变为加法,对第二个数进行二进制的补码运算。A−B↔A+(B+1)这里的(B+1)表示B的补码41补码:只需要讨论加法列列相加,若有进位,就加到下一列,舍最后一列进位每一列中,如果没有进位,就两位相加。如果有从前一列来的进位,就三位相加。下表显示了进位(Carry)、和(Sum)。42Figure4.6二进制补码格式表示的整数加法和减法43Example4.16以二进制补码格式存储两个整数A和B,A+B?解:运算是相加,A被加到B上,结果存储在R中。A=(00010001)2B=(00010110)2用十进制检查结果:(+17)+(+22)=(+39).44Example4.17以二进制补码格式存储两个整数A和B,A+B?解:运算是相加,A被加到B上,结果存储在R中。A=(00011000)2B=(11101111)2用十进制检查结果:(+24)+(-17)=(+7)。45Example4.18以二进制补码格式存储两个整数A和B,A-B?解:相减,A被加到(B+1)上,结果存储在R中。A=(00011000)2B=(11101111)2(+24)-(-17)=(+41)46Example4.19以二进制补码格式存储两个整数A和B,A-B?解:相减,A被加到(B+1)上,结果存储在R中。A=(11011101)2B=(00010100)2(−35)−(+2

1 / 71
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功