资源描述:
《补码加减法运算(计算机组成原理)讲解学习.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、补码加减法运算(计算机组成原理)计算机组成原理12.补码加法运算补码加法的公式:[x]+[y]=[x+y](mod2)补补补特点:不需要事先判断符号,符号位与码值位一起参加运算。符号位相加后若有进位,则舍去该进位数字。在模2意义下,任意两数的补码之和等于该两数之和的补码。这是补码加法的理论基础。补码加法的特点:(1)符号位要作为数的一部分一起参加运算;(2)在模2的意义下相加,即大于2的进位要丢掉。其结论也适用于定点整数。计算机组成原理2例:x=0.1001,y=0.0101,求x+y。解:[x]=0.1001,[y]=0.0101补补[x]0.1001补+[y]补0.0101[x+y]0
2、.1110所以x+y=+0.1110补例:x=+0.1011,y=-0.0101,求x+y。解:[x]=0.1011,[y]=1.1011补补[x]0.1011补+[y]补1.1011[x+y]补10.0110所以x+y=0.0110计算机组成原理33.补码减法补码减法运算的公式:[x-y]=[x]-[y]=[x]+[-y]补补补补补公式证明:只要证明[–y]=–[y],上式即得证。补补证明:∵[x+y]=[x]+[y](mod2)补补补令y=-x∴[0]=[x]+[-x]补补补故[-x]=-[x](mod2)补补减法运算要设法化为加法完成。计算机组成原理4例:x=+0.1101,y=+0
3、.0110,求x-y。解:[x]=0.1101补[y]=0.0110[-y]=1.1010补补[x]0.1101补+[-y]补1.1010∴x-y=+0.0111[x-y]10.0111补例:x=-0.1101,y=-0.0110,求x-y=?解:[x]补=1.0011[y]补=1.1010[-y]补=0.0110[x]补1.0011+[-y]补0.0110∴x-y=0.0111[x-y]补1.1001计算机组成原理5溢出及与检测方法1.概念在定点小数机器中,数的表示范围为
4、x
5、<1。在运算过程中如出现大于1的现象,称为“溢出”。下溢上溢机器定点小数表示计算机组成原理6例:x=+0.101
6、1,y=+0.1001,求x+y。解:[x]=0.1011[y]=0.1001补补[x]0.1011补+[y]0.1001补[x+y]1.0100补两个正数相加的结果成为负数,这显然是错误的。例:x=-0.1101,y=-0.1011,求x+y。解:[x]=1.0011[y]=1.0101补补[x]1.0011补+[y]1.0101补[x+y]0.1000补两个负数相加的结果成为正数,这同样是错误的。计算机组成原理7发生错误的原因,是因为运算结果超出编码所能表示的数字大小。两个正数相加:结果大于机器所能表示的最大正数,称为上溢;两个负数相加:结果小于机器所能表示的最小负数,称为下溢。下溢上
7、溢机器定点小数表示计算机组成原理82.溢出的检测方法[x]补0.1011[x]补1.0011+[y]补0.1001+[y]补1.0101[x+y]补1.0100[x+y]补0.1000(1)单符号位法x0zFA0y0溢出逻辑表达式为:V=SSS+SSS判断V12c12c电路判断电路计算机组成原理9(2)双符号位法一个符号位只能表示正、负两种情况,当产生溢出时,符号位的含义就会发生混乱。如果将符号位扩充为两位(S、S),其所能表示的信息量将f1f2随之扩大,既能判别是否溢出,又能指出结果的符号。双符号位法也称为“变形补码”或“模4补码”。变形补码定义:x0x<2[x]=(mod4)补4+x
8、-2x<0计算机组成原理10采用变形补码后数的表示:•任何小于1的正数:两个符号位都是“0”,即00.xx...x;12n•任何大于-1的负数:两个符号位都是“1”,即11.xx…x12n模4补码加法公式:[x]+[y]=[x+y](mod4)补补补两数变形补码之和等于两数和的变形补码,要求:•两个符号位都看做数码一样参加运算;•两数进行以4为模的加法,即最高符号位上产生的进位要丢掉。计算机组成原理11双符号位的含义如下:SS=00结果为正数,无溢出f1f201结果正溢10结果负溢11结果为负数,无溢出即:结果的两个符号位的代码不一致时,表示溢出;两个符号位的代码一致时,表示没有溢出。不
9、管溢出与否,最高符号位永远表示结果的正确符号。溢出逻辑表达式为:V=S⊕Sf1f2式中:S和S分别为最高符号位和第二符号位,此逻辑表达式可用异或门实现。f1f2计算机组成原理12例x=+0.1100,y=+0.1000,求x+y。解:[x]=00.1100[y]=00.1000补补[x]00.1100补+[y]00.1000补01.0100符号位出现“01”,表示已溢出,正溢。即结果大于+1例x=-0.1100,y=-0