两位整数的加减都可看做 一个数加上另一个数,首先我们要把数据的二进制表示转化成补码,因为在计算机内部,数据的加减是按补码进行运算的。
A补+B补=(A+B)补(mod 2^n+1) 连同符号位相加,符号位产生的进位要丢掉
一、两正整数:
举例:32+420
32的二进制补码表示: 0000 0010 0000
420的二进制补码表示:0001 1010 0100
按位相加: 0001 1100 0100
因为有3*4个二进制位,n=12,结果(mod2^n+1)后仍为原数据,经计算,二进制0001 1100 0100转化为10进制是452
二、两负整数:
举例:-32-255
-32的二进制补码表示: 1111 1110 0000
-255的二进制补码表示:1111 0000 0001
按位相加: 1110 1110 0001(长度为3*4位,多出的部分舍去,而这也是-287的补码)
三、一个正数加一个负数
举例:67-34
67的二进制补码表示: 0100 0011
-32的二进制补码表示:1110 0000
按位相加: 0010 0011(长度为2*4位,高位舍去,得到35)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)