第2章运算方法与运算器2ppt课件.ppt
《第2章运算方法与运算器2ppt课件.ppt》由会员分享,可在线阅读,更多相关《第2章运算方法与运算器2ppt课件.ppt(80页珍藏版)》请在三一文库上搜索。
1、第 2 章 运算方法与运算器,2.2 定点加、减运算,2.2.1 定点补码加、减法与溢出,2.2.2 基本的二进制加、减法器,2.2.1 定点补码加、减法与溢出,在计算机中,常将数值转换成补码后再进行加减运算。 其优点是,可将减法运算转化为加法运算,这样可以简化机器内部硬件电路的结构。 补码运算的特点是:符号位和数值位一起参加运算。,补码加减运算公式,(1)补码的加法运算 其公式为: xy补x补y补 (2)补码的减法运算 其公式为: x - y 补= x +(- y) 补 = x 补 + -y补x补-y补,补补补 (mod 2) 现分4种情况来证明。 假设采用定点小数表示,因此证明的先决条件是
2、:1; 1; 1。 0,0,则0。 相加两数都是正数,故其和也一定是正数。正数的补码和原码是一样的,可得: 补补补 (mod 2),(1)补码加法的公式,0,0,则0或0时,2 () 2,进位2必丢失,又因()0, 故 补补 补 (mod 2) 当0时,2 () 2,又因()0, 故 补补2() 补 (mod 2),0,则0或 0。 这种情况和第2种情况一样,把和的位置对调即得证。 0,0,则0。 相加两数都是负数,则其和也一定是负数。 补2, 补2 补补 22 2(2) 上式右边分为”2”和(2)两部分。由于()是负数,且其绝对值又小于1,那么(2)就一定是小于2而大于1的数,进位”2”必丢
3、失。又因()0, 所以 补补(2)2()补,例0.1011, 0.0101,求y。 解:,补0.1011, 补1.1011 补 0.1011 补 1.1011 补 10.0110 所以 0.0110,补码的减法运算公式为: 补补补补补 只要证明补补,上式即得证。 证明方法:利用补码加法公式, 0 补= 0 y 补 y 补 y(y) 补 y y 补 0 补 0故 y 补 y补 对于定点小数和定点整数都适用 y 补的含义: 是将 y补的各位(包括符号位)全部取反,末位加“1”。,(2)补码的减法运算,从补求补的法则是: 对补各位(包括符号位)求反且最末位加1,即可得到 补。 写成运算表达式,则为
4、补补2n 其中: 符号表示对补作包括符号位在内的求反操作,2n表示最末位的1。,例1 已知10.1110,20.1101, 求:1补,1补,2补,2补。,解: 1补1.0010 1补1补2-4 0.11010.00010.1110 2补0.1101 2补2补2-4 1.00100.00011.0011,例2 0.1101,0.0110, 求。,解: 补0.1101,补0.0110, 补1.1010 补 0.1101 补 1.1010 补 10.0111 所以 0.0111,参加运算的数都用补码表示。 数据的符号与数据一样参加运算。 求差时将减数求补,用求和代替求差。 运算结果为补码。如果符号位
5、为0,表明运算结果为正;如果符号位为1,则表明运算结果为负。 符号位的进位为模值,应该丢掉。,补码加减法运算规则,3. 溢出判断法,在机器定点小数中,数的表示范围为: |1。 在运算过程中如出现大于1的现象,称为“溢出”。 在定点机中,正常情况下溢出是不允许的。,机器定点小数表示,例 0.1011, 0.1001,求。 解: 补0.1011 补0.1001 补 0.1011 补 0.1001 补 1.0100 两个正数相加的结果成为负数,这显然是错误的。 例 0.1101, 0.1011,求。 解: 补1.0011 补1.0101 补 1.0011 补 1.0101 补 0.1000 两个负数
6、相加的结果成为正数,这同样是错误的。,发生错误的原因: 是因为运算结果产生了溢出。 两个正数相加,结果大于机器所能表示的最大正数,称为上溢。 两个负数相加,结果小于机器所能表示的最小负数,称为下溢。 溢出的判断方法 为了判断“溢出”是否发生,可采用两种检测的方法。 第一种方法是采用双符号位法(变形补码法,或 “模4补码”)。 第二种方法是采用单符号位法(进位判断法)。,(1)双符号法(变形补码法),用两个相同的符号位Sf1 Sf2表示一个数的符号。 左边第一位为第一符号位Sf1,相邻的为第二符号位Sf2。 双符号位的含义为: 00表示正号; 11表示负号; 01表示产生正向溢出; 10表示产生
7、负向溢出。 双符号位可用逻辑异或来判断溢出情况: V=Sf1Sf2 ,此逻辑表达式可用异或门实现。 若V=0,则无溢出;V=1,则有溢出。 第一符号位永远是结果的真正符号位。,例1:已知 x=0.1011 , y=0.0111, 求x+y=? 解:x 补=00.1011,y 补=00.0111 x 补= 00.1011 + y 补= 00.0111 x+y 补= 01.0010 两符号位为01,表示出现正向溢出。 例2:已知 x=-0.1011 , y=0.0111, 求x-y=? 解:x 补=11.0101,-y 补=11.1001 x 补= 11.0101 + -y 补= 11.1001
8、x-y 补= 1 10.1110 已超出模值,丢掉 两符号位为10,表示出现负向溢出。,进位判断法,判断规则:设Cn-1为最高数值位向符号位的进位值产生的进位, Cn为符号位产生的进位。当两补码进行加减运算(减法转化为加法进行)时, 如果两个进位值Cn-1 Cn相同,则没有溢出发生 如果两个进位值不同,则有溢出发生。 若Cn-11, Cn 0时,则发生正溢 若Cn-10, Cn 1时,则发生负溢 其判断溢出表达式如下:V=CnCn-1 , 此逻辑式可用异或门实现,例如: x 补= 1.0101 + y 补= 1.1001 x+y 补= 1 0.1110 最高有效位没有进位,即Cn-1 =0,符
9、号位有进位,即Cn=1,故V=10=1,有溢出发生。 x 补= 1.1101 + y 补= 0.1001 x+y 补= 1 0.0110 最高有效位有进位,即Cn-1 =1,符号位有进位,即Cn=1,故V=11=0,无溢出发生, x+y= + 0.0110 。,返回,2.2.2 基本的二进制加法/减法器,设字长为n位,两个操作数分别为 xx0. x1 x2 xn-1 yy0. y1 y2 yn-1 其中x0 ,y0为符号位。,补码运算的二进制加法/减法器(采用的变形补码运算)的逻辑结构图,一位加法器,2.3 定点乘法运算,2.3.1 原码一位乘法,2.3.2 补码一位乘法,2.3.3 原码两位
10、乘法,2.3.4 补码两位乘法,2.3.1 原码一位乘法,例:求A= 0.1011 B=0.1101 两数乘积 0.1011 0.1101 1101 0000 1101 1101 0.10001111,计算机计算乘法,人工计算乘法,1.算法及思路;,递推算法:如何利用算法将nn位运算转化成n次移位和加法,且每次运算动作必须统一划一。 P原=x原y原= xf.x1xnyf.y1yn=(xfyf)(0.x1xn)(0.y1yn)=Pf.P1P2n 递推算法的实现过程: (0.x1xn)(0.y1yn)=x(y12-1+ y22-2+yn2-n) =2-1(y1x+2-1(y2x+2-1(+2-1(
11、yn-1x+2-1(ynx+0(P0) ) 设Pi为部分积,且令P0=0, 则 P1=2-1(ynx+P0); P2=2-1(yn-1x+P1); Pn=2-1(y1x+Pn-1) =xy。,25,2.运算的流程,.初始化:部分积存于R0中,初始值为0;被乘数x存于R2中,初始值为x;乘数y存于R1中,初始值为y; 计数值n存于T中。 .判断运算:看乘数的最低值是0还是1,然后决定不同的操作: .移位运算:R0与R1一起右移一位; 完成2-1运算;同时将yn-1移至最低位形成新的yn。 .循环控制:T-1=0?, 若T0,转向循环; 若T=0,退出循环结束运算。,26,例1 x= -0.110
12、1,y=-0.1011,求:xy原=?,由于 Pf= xfyf =11=0,|P|=|x|.|y| =0.10001111 所以 xy原=0.10001111,原码一位乘法硬件逻辑结构图,R0和R1都具有右移功能并且连通,2.3.2 补码一位乘法,补码一位乘法方法: 是在原码一位乘法的基础上发展起来的 比较法,由英国Booth夫妇首先提出,故又称为Booth乘法,它是现在广泛采用的补码乘法。,补码一位乘法方法,1、补码乘法算法 (1)补码一位乘法校正法 假设X补 = X0 .X1Xn , Y补 = Y0 .Y1Yn , 则有: XY补 = X补(0.Y1Yn)+ Y0-X补,补码一位乘法方法,
13、证明如下: 当被乘数X的符号任意,Y为正数时: XY补 =X *(0 .Y1Yn)补 (mod 2) =X补(0 .Y1Yn) 当被乘数X的符号任意,Y为负数时: Y补 = 2 + Y = 1 .Y1Yn则: Y = Y补 2 = 0.Y1Yn -1 XY补 = X *(0 .Y1Yn)X 补 = X0.Y1Yn 补 +X 补 = X补(0.Y1Yn)+ -X补 = X补(0.Y1Yn)- X补 所以: XY补 =X补*(0.Y1Yn)-Y0X补,XY补 = X补(0.Y1Yn)+ Y0-X补 = X补(Y12-1 + Y22-2 + + Yn2-n -Y0) = X补Y1(20 - 2-1)
14、+ Y2(2-1 - 2-2)+ + + Yn(2-n+1 - 2-n)-Y020 = X补Y120 - Y12-1 + Y22-1 - Y22-2 + + + Yn2-n+1 - Yn2-n -Y020 = X补(Y1-Y0)20 +(Y2- Y1)2-1 +(Y3- Y2)2-2 + + (Yn- Yn-1)2-n+1 - Yn2-n = X补(Y1-Y0)20 +(Y2- Y1)2-1 +(Y3- Y2)2-2 + + (Yn- Yn-1)2-n+1 +(Yn+1 - Yn)2-n = X补(a020 + a12-1 + a22-2 + + +an-12-n+1 + an2-n) 其中,
15、将乘数Y的补码在最末位添加一位附加位Yn+1(初始为0),ai= Yi+1- Yi ,i=0,1,n-1,n。,0,(2)补码一位乘法Booth算法,假设Y补 = Y0 .Y1Yn 被乘数X和乘数Y均以补码的形式参加乘法运算,运算的结果是积的补码。 部分积和被乘数X采用双符号位,乘数Y采用单符号位。 初始部分积为0;运算前,在乘数Y的补码末位后添加一位附加位Yn+1,初始为0。 根据YnYn+1的值,按照表4.3进行累加右移操作,右移时遵循补码的移位规则。 累加n+1次,右移n次, 即最后一次不右移。,Booth算法的运算规则,补码移位规则:部分积为正, 右移时有效位最高位补0;为负时最高位补
16、1。,解: x补=11.0011;-x补=00.1101 (用双符号表示); y补=0.1011 (用单符号表示) R0部分积 R1乘数ynyn+1 说 明 00.0000 0.10110 + 00.1101 ynyn+1=10,加-x补 00.1101 00.01101 0.1011 右移一位得 P1 00.001101 0.101 ynyn+1=11,右移一位得 P2 + 11.0011 ynyn+1=01,加x补 11.011001 11.1011001 0.10 右移一位得 P3 + 00.1101 ynyn+1=10 加-x补 00.1000001 00.01000001 0.1 右
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算 方法 运算器 ppt 课件
链接地址:https://www.31doc.com/p-2524591.html