运算方法与运算部.ppt
《运算方法与运算部.ppt》由会员分享,可在线阅读,更多相关《运算方法与运算部.ppt(46页珍藏版)》请在三一办公上搜索。
1、运算方法与运算部件,定点运算,郑州大学软件学院,2,定点运算,郑州大学软件学院,3,移位运算,计算机中小数点位置是约定的,当对计算机中的数进行左右移操作时,相当于对其进行了相应的乘除运算十进制:100左移一位成为1000,相当于乘以10;右移两位为1,相当于除以100=102二进制:1101=13,左移一位,低位补什么?右移一位,低位补什么?,机器数移位后空出的位置补0还是1,取决于该数是有符号数还是无符号数对有符号数的移位称为算术移位,对无符号数的移位称为逻辑移位,郑州大学软件学院,4,移位运算,算术移位规则移位后符号位不变正数:移位后的空位均用 0 补足负数:原码补 0,反码补 1,补码左
2、 0 右1(左移时空位补0,右移时空位补1),郑州大学软件学院,5,移位运算,算术移位例1设机器字长为8位(含1位符号位),将十进制数26的原、反、补码分别左、右移一位和两位后的结果及其对应真值,并分析结果的正确性。解:26=11010B,26原=0,0011010,+6,0,0000110,+13,0,0001101,+104,0,1101000,+52,0,0110100,+26,0,0011010,移位前,A原=A补=A反,对应的真值,机 器 数,移位操作,左移一位,左移两位,右移一位,右移两位,正数移位后符号位均不变,但左移后最高位丢失1时,结果出错;右移后最低位丢1时,精度降低,若对
3、此数左移三位,结果如何?,郑州大学软件学院,6,移位运算,算术移位例1设机器字长为8位(含1位符号位),将十进制数-26的原、反、补码分别左、右移一位和两位后的结果及其对应真值,并分析结果的正确性。解:-26=-11010B,26原=1,0011010,6,1,0000110,13,1,0001101,104,1,1101000,52,1,0110100,26,1,0011010,移位前,原码,左移一位,左移两位,右移一位,右移两位,负数原码移位后,前后空位均补 0,郑州大学软件学院,7,移位运算,6,1,1111001,13,1,1110010,104,1,0010111,52,1,1001
4、011,26,1,1100101,移位前,7,1,1111001,13,1,1110011,104,1,0011000,52,1,1001100,26,1,1100110,移位前,补码,反码,左移一位,左移两位,右移一位,右移两位,左移一位,左移两位,右移一位,右移两位,负数反码移位后,前后空位均补 1,负数补码移位后,后空补 0,前空补1,各种码制的负数移位后符号位均不变 负数原码左移后最高位丢失1时,结果出错;右移后最低位丢1时,精度降低 负数补码左移后最高位丢失0时,结果出错;右移后最低位丢1时,精度降低 负数反码左移后最高位丢失0时,结果出错;右移后最低位丢0时,精度降低,郑州大学软件
5、学院,8,移位运算,算术移位的硬件实现,(a)真值为正,(b)负数的原码,(c)负数的补码,(d)负数的反码,郑州大学软件学院,9,逻辑移位,逻辑移位规则逻辑左移时,高位丢弃,低位补0逻辑右移时,低位丢弃,高位补0eg:01010011,逻辑左移为10100110 算术左移为00100110 10110010,逻辑右移为01011001(视为补码)算术右移为11011001为避免算术左移时丢失有效位,通常在状态寄存器中指定一位存放算术左移时移出的进位信息,郑州大学软件学院,10,知识回顾,数制数值的处理定点数小数点问题有符号数符号问题码制原码解决了负数问题,但运算复杂补码解决了负数运算问题定点
6、移位运算帮助解决乘除问题,郑州大学软件学院,11,定点加减运算,郑州大学软件学院,12,1、补码加法 两个补码表示的数相加,符号位参加运算,且两数和的补码等于 两数补码之和。即:X+Y 补=X 补+Y 补2、补码减法 原则上讲:X-Y 补=X 补-Y 补 可见需要一个减法器,而现在只有加法器,如何得到 X-Y 补呢?我们可以根据补码加法公式推出:X-Y 补=X+(-Y)补=X 补+-Y 补 这样,减法的问题就归结到如何求-Y 补的问题了。知识回顾:-Y 补=/Y 补+1 即,-Y 补 等于 Y 补连同符号位在内求反加1。,补码定点加、减运算,郑州大学软件学院,13,例1、Y=0.1010 Y补
7、=0.1010-Y 补=1.0110例2、Y=-0.1010 Y补=1.0110-Y 补=0.1010例3、已知 X 补=0.0010,Y补=1.1010 求 X-Y 补=?解:X 补=0.0010+)-Y补=0.0110 X-Y 补=0.1000 这就是运算求得的正确结果。,补码定点加、减运算,郑州大学软件学院,14,例4、已知 X 补=1.1011,Y补=0.0110 求 X-Y 补=?解:X 补=0.0010+)-Y补=1.1010 Y补 是正数,-Y补 变成一负数 X-Y 补=11.0101 以2为模的情况下,符号位的进位1在机器中将会自动舍弃,故得出的就是正确的结果 X-Y 补。,补
8、码定点加、减运算,郑州大学软件学院,15,溢出的产生 例1:X 补=0.1011+)Y 补=0.0111 X+Y 补=1.0010 例2:X 补=1.0101+)Y补=1.1001 X+Y 补=0.1110,从例1例2中看出,两个正数相加,结果是一负数(符号位为1),而两个负数相加,结果是一个正数(符号位为0),显然结果错误。,溢出及其检测方法,郑州大学软件学院,16,溢出原因分析:寄存器的位数一旦确定下来,就有了容量的限制,数值表示的范围就固定了。如果运算过程中数值位超出了机器允许表示的范围,进入符号位上,造成符号性质的改变,就产生溢出。,符号位,数值位,显然,机器允许表示范围应该为+127
9、 到-128 之间,大于 127 称为上溢或正溢出,小于-128 称为下溢或负溢出。,溢出及其检测方法,郑州大学软件学院,17,2)溢出的判断方法 计算机只能判断溢出,不能处理溢出!下面介绍计算机判断溢出的方法。方法一:设 X补=X0 X1 X2 Xn,Y补=Y0 Y1 Y2 Yn,其和(或差)为 S 补=S0 S1 S2 Sn。则溢出条件为:V=X0 Y0/S0+/X0/Y0 S0,溢出及其检测方法,郑州大学软件学院,18,00.1001+00.0011 00.1100 不溢出,11.0111+11.1101 11.0100 不溢出,00.1101+00.1001 01.0110 溢出,11
10、.0011+11.0111 10.1010 溢出,观察下列算式:,可见,当结果两个符号位的值不一致时,表示溢出,若设两符号位 Sf1 和 Sf2,则:V=Sf1 Sf2,2)溢出的判断方法 方法二:采用变形补码(双符号位补码),比喻:比如第一道河坝拦不住水了,就再设一道。,这种方法好,但是增加一个符号位后,数据表示范围缩小了,最好改进只设置一个符号位!,溢出及其检测方法,郑州大学软件学院,19,2)溢出的判断方法 方法三:采用双高位判断 数值部分最高位产生的进位为Cs;(设置一触发器)符号位部分向上产生的进位为Cf。(设置一触发器)溢出条件公式:V=Cs Cf,0.1001+0.0011 0.
11、1100 不溢出,1.0111+1.1101 1.0100 不溢出,0.1101+0.1001 1.0110 溢出,1.0011+1.0111 0.1010 溢出,Cf=0 Cs=0,Cf=1 Cs=1,Cf=0 Cs=1,Cf=1 Cs=0,溢出及其检测方法,郑州大学软件学院,20,设两寄存器中存放A,B两数,进行运算.A寄存器:A0.A1 A2 An B寄存器:B0.B1 B2 Bn 则:A+B=A0.A1 A2 An+B0.B1 B2 Bn A-B=A0.A1 A2 An+B0.B1 B2 Bn+0.0001,且:A+B A AB A,累加器:硬件要支持软件,软件中有循环程序设计,所以要
12、设计累加器。SUM=1+2+3+4+5+100 S=S+X,补码定点加法器,X 补,Y 补,X+Y 补=X 补+Y 补,X-Y 补=X 补+/Y 补+1,郑州大学软件学院,21,四片4位ALU电路可组成16位ALU。(1110 1101 0101 0001)片内进位是快速的,但片间进位是逐片传递的,形成F0F15时间长。,知识回顾:算术逻辑单元,把16位ALU中的每四位作为一组,用类似四位超前进位加法器“位间快速进位”的形成方法来实现16位ALU(由四片ALU组成)中的“组间快速进位”,那么就能得到16位快速ALU。,郑州大学软件学院,22,CPA,2.3、补码定点加法器,+A,+B,-B,实
13、现加法运算的逻辑示例,A+B A AB A,郑州大学软件学院,23,定点乘法运算,注释:前面讲的内容帮助同学们打开怎么设计运算器的思路,分析怎么样的数的表示方法对运算有利,怎么样的数的表示方法对运算不利。硬件设计时,还要考虑怎样提高硬件运算速度。所以,以后讲的乘法除法要逐渐从怎么样提高计算机的运算速度来考虑。,郑州大学软件学院,24,乘法运算可以通过硬件实现,也可以通过软件来实现,硬件实现乘法是以加法器为基础逐步累加而成。1)、软件方法:通过乘法子程序在加/减运算器中实现。该方法经济,但是运算速度慢。2)、硬件方法:A、在加/减法运算器中增加一些移位和控制部件来实现。这种方法在早期的计算机采用
14、。B、随着大规模集成电路的发展,现在设计了阵列乘法器。设置专门的多位乘法部件,适用于高速大中型计算机。,定点乘法运算,郑州大学软件学院,25,根据数的表示方法,乘法器又有:原码乘法器,补码乘法器。原码乘法器实现乘法运算方法简单,补码乘法器实现加/减运算比较简单。所以在以加/减运算为主的机器中多采用补码乘法器。下面分别介绍原码、补码乘法。,定点乘法运算,郑州大学软件学院,26,原码一位乘法基本上是从手算演变过来,符号位单独处理。两个原码表示的数相乘,它的运算规则是:乘积的符号位通过两数的符号按异或运算得到,乘积则是两个操作数的绝对值相乘之积。运算方法与普通的十进制小数乘法相类似,对二进制更为简单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算 方法
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6063969.html