补码加减法运算(计算机组成原理)

补码加减法运算(计算机组成原理)

ID:38299631

大小:587.81 KB

页数:25页

时间:2019-06-08

补码加减法运算(计算机组成原理)_第1页
补码加减法运算(计算机组成原理)_第2页
补码加减法运算(计算机组成原理)_第3页
补码加减法运算(计算机组成原理)_第4页
补码加减法运算(计算机组成原理)_第5页
资源描述:

《补码加减法运算(计算机组成原理)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机组成原理Thursday,July15,2021补码加减法运算加法规则:先判符号位,若相同,绝对值相加,结果符号不变;若不同,则作减法,

2、大

3、-

4、小

5、,结果符号与

6、大

7、相同。减法规则:两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。补码加减法运算1.原码加/减法运算补码加法的公式:[x]补+[y]补=[x+y]补(mod2)在模2意义下,任意两数的补码之和等于该两数之和的补码。这是补码加法的理论基础。2.补码加法运算特点:不需要事先判断符号,符号位与码值位一起参加运算。

8、符号位相加后若有进位,则舍去该进位数字。补码加法的特点:(1)符号位要作为数的一部分一起参加运算;(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.1110所以x+y=+0.1110例:x=+0.1011,y=-0.0101,求x+y。所以x+y=0.0110解:[x]补=0.1011,[y]补=1.1011[x]补0.1011+[y]补1.

9、1011[x+y]补10.01103.补码减法减法运算要设法化为加法完成。补码减法运算的公式:[x-y]补=[x]补-[y]补=[x]补+[-y]补公式证明:只要证明[–y]补=–[y]补,上式即得证。∵[x+y]补=[x]补+[y]补(mod2)令y=-x∴[0]补=[x]补+[-x]补故[-x]补=-[x]补(mod2)证明:例:x=+0.1101,y=+0.0110,求x-y。解:[x]补=0.1101[y]补=0.0110[-y]补=1.1010∴x-y=+0.0111解:[x]补=1.0011[y]补=1.1

10、010[-y]补=0.0110[x]补1.0011+[-y]补0.0110[x-y]补1.1001例:x=-0.1101,y=-0.0110,求x-y=?∴x-y=0.0111[x]补0.1101+[-y]补1.1010[x-y]补10.0111溢出及与检测方法在定点小数机器中,数的表示范围为

11、x

12、<1。在运算过程中如出现大于1的现象,称为“溢出”。机器定点小数表示上溢下溢1.概念解:[x]补=0.1011[y]补=0.1001[x]补0.1011+[y]补0.1001[x+y]补1.0100例:x=+0.1011,y

13、=+0.1001,求x+y。例:x=-0.1101,y=-0.1011,求x+y。解:[x]补=1.0011[y]补=1.0101[x]补1.0011+[y]补1.0101[x+y]补0.1000两个正数相加的结果成为负数,这显然是错误的。两个负数相加的结果成为正数,这同样是错误的。发生错误的原因,是因为运算结果超出编码所能表示的数字大小。两个正数相加:结果大于机器所能表示的最大正数,称为上溢;两个负数相加:结果小于机器所能表示的最小负数,称为下溢。机器定点小数表示上溢下溢2.溢出的检测方法[x]补0.1011+[y]

14、补0.1001[x+y]补1.0100[x]补1.0011+[y]补1.0101[x+y]补0.1000溢出逻辑表达式为:V=S1S2Sc+S1S2Sc(1)单符号位法FAVz0y0x0判断电路判断电路一个符号位只能表示正、负两种情况,当产生溢出时,符号位的含义就会发生混乱。如果将符号位扩充为两位(Sf1、Sf2),其所能表示的信息量将随之扩大,既能判别是否溢出,又能指出结果的符号。(2)双符号位法双符号位法也称为“变形补码”或“模4补码”。变形补码定义:[x]补=x0x<24+x-2x<0(mod4)•任何小于1

15、的正数:两个符号位都是“0”,即00.x1x2...xn;•任何大于-1的负数:两个符号位都是“1”,即11.x1x2…xn两数变形补码之和等于两数和的变形补码,要求:•两个符号位都看做数码一样参加运算;•两数进行以4为模的加法,即最高符号位上产生的进位要丢掉。模4补码加法公式:[x]补+[y]补=[x+y]补(mod4)采用变形补码后数的表示:Sf1Sf2=00结果为正数,无溢出01结果正溢10结果负溢11结果为负数,无溢出即:结果的两个符号位的代码不一致时,表示溢出;两个符号位的代码一致时,表示没有溢出。不管溢出与

16、否,最高符号位永远表示结果的正确符号。溢出逻辑表达式为:V=Sf1⊕Sf2式中:Sf1和Sf2分别为最高符号位和第二符号位,此逻辑表达式可用异或门实现。双符号位的含义如下:解:[x]补=00.1100[y]补=00.1000[x]补00.1100+[y]补00.100001.0100符号位出现“01”,表示已溢出,正溢。即结果大于

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。