对于补码来说,无论加法还是减法,最后都会转变成加法,由加法器实现运算,符号位也参与运算。
[-B]补 : [B]补连同符号位一起取反加1
①数值位取反+1;
②负数补码中,最右边的1及其右边同原码。最右边的1的左边同反码
我们先看一道例题:设机器字长为8位(含1位符号位),A = 15,B = -24,求[A+B]补和[A−B]补
先将A B的原码补码都求出来
[A+B]补 = [A]补 + [B]补 = 0,0001111 + 1,1101000 = 1,1110111
原码:1,0001001 真值-9
[A-B]补 = [A]补 + [-B]补 = 0,0001111 + 0,0011000 = 0,0100111
真值+39
我们将题改一下:
其中 C = 124,求[A+C]补和[B−C]补,按照上面方法求出可得:
[A+C]补 = 0,0001111 + 0,1111100 = 1,0001011 真值-117 溢出(实际应该是139,但是溢出后是 -117)
[B−C]补 = 1,1101000 + 1,0000100 =0,1101100 真值+108
正数符号为00,负数符号为11
[A+C]补 = 00,0001111 + 00,1111100 = 01,0001011 上溢
[B−C]补 = 11,1101000 + 11,0000100 = 10,1101100 下溢
记两个符号位为S1 S2 ,则V=S1异或S2
联系客服