第三讲 定点运算(加减法)
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相加两数都是负数,则其和也一定是负数。
∵[x]补=2+x,
[y]补=2+y
∴[x]补+[y]补=2+x+2+y=2+(2+x+y)
上式右边分为”2”和(2+x+y)两部分.既然(x+y)
是负数,而其绝对值又小于1,那么(2+x+y)就一定
是小于2而大于1的数,进位”2”必丢失.又因(x+
y)<0, 所以
3、补码减法运算
公式: [x-y]补= [x]补+[-y]补
连同符号位一起相加,符号位产生的进位自然丢掉
举例
例 18 设 A = 0.1011,B = – 0.0101
求 [A + B]补
验证
解: [A]补 = 0 . 1 0 1 1
0.1011
+ [B]补 = 1 . 1 0 1 1
– 0.0101
移位操作 移位前
左移一位 左移两位 右移一位 右移两位
机器数 1,1100110 1,1001100 1,0011000 1,1110011 1,1111001
机器数 1,1100101 1,1001011 1,0010111 1,1110010 1,1111001
对应的真值 – 26 – 52
– 104 – 13 –7
解: A = – 26 = – 11010
原码
移位操作 移位前
左移一位 左移两位 右移一位 右移两位
机器数 1,0011010 1,0110100 1,1101000 1,0001101 1,0000110
对应的真值 – 26 – 52
– 104 – 13 –6
补码 反码
移位操作 移位前
左移一位 左移两位 右移一位 右移两位
[x]补+[y]补=2+(x+y)=[x+y]补
连同符号位一起相加,符号位产生的进位自然丢掉
结论: 至此证明了在模2意义下,任意两数的
补码之和等于该两数之和的补码。
其结论也适用于定点整数。
补码加法的特点:
(1)符号位要作为数的一部分一起参加 运算;
(2)在模2的意义下相加,即大于2的进 位要丢掉。
二、补码加/减法
1.原码加/减法运算
加法规则: 先判符号位,若相同,绝对值相加,结果符号不变; 若不
同,则作减法, |大| - |小|,结果符号与|大|相同。 减法规则:
两个原码表示的数相减,首先将减数符号取反,然后将被 减数与符号取反后的减数按原码加法进行运算。
2、补码加法运算
公式:[x]补+[y]补 =[x+y]补
证明:假设︱x︱﹤1, ︱y︱﹤1, ︱x+y︱﹤1
现分四种情况来证明
(1)x﹥0,y﹥0,则x+y﹥0 [x]补=x, [y]补=y, [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 当x+y>0时,2 + (x+y) > 2,进位2必丢失,又因
(x+y)>0, 故 [x]补+[y]补=x+y=[x+y]补 当x+y<0时,2 + (x+y) < 2,又因(x+y)<0, 故 [x]补+[y]补=2+(x+y)=[x+y]补
所以上式成立
(3)x<0,y>0,则x+y>0或 x+y<0
这种情况和第2种情况一样,把x和y的位置对调即得
证。
(4)x<0,y<0,则x+y<0
逻辑左移 低位添 0,高位移丢
逻辑右移 高位添 0,低位移丢
例如
01010011
0
0 10110010
逻辑左移 10100110
算术左移 00100110
高位 1 移丢
逻辑右移 01011001 算术右移 11011001(补码)
Cy 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0
移位操作
移位前 左移一位 左移两位
机器数 [A]原=[A]补 =[A]反 0,0011010
0,0110100
0,1101000
对应的真值
+26 + 52 +104
右移一位 右移两位
0,0001101 0,0000110
+13 +6
例17
设机器数字长为 8 位(含1位符号位),写出 A = –26时,三种机器数左、右移一位和两位后的表 示形式及对应的真值,并分析结果的正确性。
2. 算术移位规则
符号位不变
码制
添补代码
正数 原码、补码、反码
0
负数
原码 补码 反码
Baidu Nhomakorabea
0 左移 添 右 0 移 添 1
1
例16
设机器数字长为 8 位(含1位符号位),写出 A = +26时,三种机器数左、右移一位和两位后的表 示形式及对应的真值,并分析结果的正确性。
解: A = +26 = +11010 则 [A]原 = [A]补 = [A]反 = 0,0011010
例 20 设机器数字长为 8 位(含 1 位符号位)
且 A = 15, B = 24,用补码求 A – B
解: A = 15 = 0001111
B = 24 = 0011000
[A]补 = 0, 0001111 [B]补 = 0, 0011000
+ [– B]补 = 1, 1101000
[A]补 + [– B]补 = 1, 1110111 = [A – B]补
第三讲
定点运算(一)
本讲主要内容
移位运算 补码加法 补码减法 益处概念与检测方法 基本的二进制加法/减法器
一、移位运算
1. 移位的意义 15. m = 1500. cm
小数点右移 2 位 机器用语 15 相对于小数点 左移 2 位
( 小数点不动 ) 左移 绝对值扩大 右移 绝对值缩小 在计算机中,移位与加减配合,能够实现乘除运算
[A]补 + [B]补 = 1 0 . 0 1 1 0 = [A + B]补 0.0110
∴A+B= 0.0110 例 19 设 A = –9,B = –5
求 [A+B]补 解: [A]补 = 1 , 0 1 1 1
+ [B]补 = 1 , 1 0 1 1
验证
– 1001 + – 0101
[A]补 + [B]补 = 1 1 , 0 0 1 0 = [A + B]补 – 1110 ∴ A + B = – 1110
对应的真值 – 26 – 52
– 104 – 13 –6
3. 算术移位的硬件实现
0
0
0
1
0
(a)真值为正 (b)负数的原码 (c)负数的补码 (d)负数的反码
丢 1 出错
出错
正确
正确
丢 1 影响精度
影响精度
影响精度
正确
4. 算术移位和逻辑移位的区别
算术移位 有符号数的移位
逻辑移位 无符号数的移位