计算机组成原理2.2定点加减法运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
证明[x]补+[y]补=[x+y]补
• (4)x<0,y<0,则x+y<0 ∵[x]补=2+x,[y]补=2+y ∴[x]补+[y]补 =2+x+2+y =2+(2+x+y) • (x+y)是负数,而其绝对值又小于1, 那么(2+x+y)就一定是小于2而大于1 的数,进位”2”必丢失
。 相加两数都是负数,则其 和也一定是负数。
或用同余式表示为 [x]补=4+x
+ [y ]补
1.1011
[x+y]补 1 0.0110
所以
x+y=+0.0110
由以上两例看到,补码加法的 特点,一是符号位要作为数的一部 分一起参加运算,二是要在模2的意
Hale Waihona Puke Baidu
义下相加,即超过2的进位要丢掉。
2.2.2 补码减法
负数的减法运算也要设法化为
加法来做,其所以使用这种方法而
不使用直接减法,是因为它可以和
[例11] x =+0.1101,y=+0.0110, 求x-y。
[解:] [x]补= 0.1101 [-y]补=1.1010 [y]补=0.0110
[x ]补
+ [-y]补 [x-y]补 所以
0.1101
1.1010 1 0.0111
x-y=+0.0111
2.2.3 溢出概念与检测方法
在定点小数机器中,数的表示范围
上式右边分为”2”和(2+x+y)两部分。 既然
又因(x+y)<0,所以
[x]补+[y]补=2+(x+y)=[x+y]补 (mod 2)
至此我们证明了,在模2意义下,
任意两数的补码之和等于该两数之和
的补码。这是补码加法的理论基础,
其结论也适用于定点整数。
[例8] x=0.1001, y=0.0101,求x+y
[x+y]补=0.1000
两负数的和为正数
之所以发生错误,是因为运算
结果产生了溢出。两个正数相加,
结果大于机器所能表示的最大正数,
称为上溢。而两个负数相加,结果
小于机器所能表示的最小负数,称
为下溢。
为了判断“溢出”是否发生,可采 用两种检测的方法。第一种方法是采用 双符号位法,这称为“变形补码”或 “模4补码”,从而可使模2补码所能表 示的数的范围扩大一倍。变形补码定义 为: x 2 >x≥0 [x]补= { (2.22) 4+x 0 >x≥ - 2
为| x |<1。在运算过程中如出现大于1
的现象,称为“溢出”。在定点机中,
正常情况下溢出是不允许的。
机器定点小数表示
[例12] x=+0.1011, y=+0.1001,求x +y。
[x+y]补=1.0100 两正数的和为负数
[例13] x =-0.1101, y =-0.1011,求 x +y。
• (1)当x﹥0,y﹥0时,有x+y﹥0
• 根据数据补码的定义
• [x]补+[y]补=x+y=[x+y]补 (mod 2)
证明[x]补+[y]补=[x+y]补
• (2)当x﹥0,y﹤0,有x+y>0, 或x+y<0两种情况 • 根据补码定义[x]补=x,[y]补=2+y • [x]补+[y]补=x+2+y=2+(x+y) • 当x+y>0时,有
常规的加法运算使用同一加法器电
路,从而简化了计算机的设计。
数用补码表示时,减法运算的公式 为:
[X-y]补=[x]补-[y]补=[x]补+[-y]补 (2.18)
只要证明[-y]补=-[y]补,上式即得 证。 现证明如下:
∵[x+y]补=[x]补+[y]补
∴[y]补=[x+y]补-[x]补 ∴[-y]补 =[x-y]补-[x]补
2.2 定点加法、减法运算
定点加减法运算包括原码、反
码、补码三种带符号的加减运算
补码加减运算实现起来最方便
2.2.1补码加法
• 负数用补码表示后,运算器里只需要 一个加法器 补码加法的公式是:
[x]补+[y]补=[x+y]补 (mod 2)
(2.17)
证明[x]补+[y]补=[x+y]补
• 假设采用定点小数表示,因此证 明的先决条件是: • ︱x︱﹤1,︱y︱﹤1, ︱x+y︱﹤1
(mod 2)
(2.19a)
∵[x-y]补=[x+(-y)]补=[x]补+[-y]补
(2.19b)
将式(2.19a)与(2.19b)相加,得
[-y]补+[y]补
=[x+y]补+[x-y]补-[x]补-[x]补
=[x+y+x-y]补-[x]补-[x]补
=[x+x]补-[x]补-[x]补=0
故 [-y]补=-[y]补
• [x]补+[y]补=x+y=[x+y]补(mod 2)
[x]补+[y]补=x+2+y=2+(x+y)
证明[x]补+[y]补=[x+y]补
• 当x+y<0时,2 + (x+y) < 2, 又因(x+y)<0,
• [x]补+[y]补=2+(x+y)=[x+y]补 (mod 2)
• (3)x<0,y>0,这种情况和第2种 情况一样
[-Y]补=[ [Y]补 ]变补
写成运算表达式,则为
[-y]补=﹁[y]补+2-n (2.21)
其中符号﹁表示对[y] 补 作包括符号 位在内的求反操作,2 -n 表示最末位
的1。
[ 例 10] 已 知 x 1 = - 0.1110 , x 2 = + 0.1101,求:[ x 1] 补 ,[- x 1] 补 ,[ x 2] 补 ,[- x2]补。 [解:] [x1]补=1.0010 [-x1]补= ﹁ [x1]补+ 2-4 =0.1101 +0.0001 =0.1110 [x2]补=0.1101 [-x2]补= ﹁ [x2]补+ 2-4 = 1.0010 +0.0001 =1.0011
(mod 2)
(2.20)
从[ y ] 补 求[- y ] 补 的法则是:对 [y]补连同符号位一起求反,最末位加 “1”(定点小数中这个1实际上是2-n), 即可得到[-y]补。 [-y]补被称为[y]补的机器负数, 由[ y ] 补 求[- y ] 补 的过程称为对[ y ] 补
变补(求补),表示为:
[解:]
[x]补 =0.1001, [y]补=0.0101
[x ]补
+ [y ]补 所以
0.1001
0.0101
[x+y]
补
0.1110
x+y=0.1110
[ 例9] x =+0.1011, y =-0.0101, 求x+y。
[解:] [x]补 =0.1011, [y]补=1.1011
[x ]补 0.1011