补码加减运算规则
(1)公式:
[X+Y]补=[X]补+[Y]补
[X-Y]补=[X]补+[-Y]补
例 X=0.001010 Y=-0.100011 求[X-Y]补
解 [X]补=0.001010 [-Y]补=0.100011
则 [X-Y]补 = [X]补+[-Y]补
= 0.001010 + 0.100011
= 0.101101
(2)变形补码:
[X+Y] 变补=[X] 变补+[Y] 变补
[X-Y] 变补=[X] 变补+[-Y] 变补
例 X=0.1011 Y=0.0011 求[X+Y]补
解 [X]变补 = 00.1011 [Y]变补 = 00.0011
[X+Y]变补 = 00.1011 +00.0011 = 00.1110
所以 [X+Y]补 = 0.1110
例 X=0.1011 Y=0.1001 求[X+Y]补
解:
[X]变补 =00.1011 [Y]变补 = 00.1001
[X+Y]变补 = 00.1011 +00.1001 = 01.0100
运算结果的两符号位是01,不相同,发生溢出,因第一符号位是0,代表正数, 所以称这种溢出为“正溢出”。
例 X=-0.1101 Y=-0.1010 求[X+Y]补
解 [X]变补 = 11.0011 [Y]变补 = 11.0110
[X+Y]变补 = 11.0011 +11.0110 = 10.1001 (mod 4)
结果的两符号位是10,不相同,发生溢出,因第一符号位是1,代表负数, 所以称这种溢出为“负溢出”。
(3)判断溢出的原则:
当两符号位不同时,溢出;
当两符号位相同时,正确。
原码乘法
1. 原码一位乘法
(1) 一位乘算法描述
设[X]原=Xs.Xn-1Xn-2…Xi