python
fire_00000
补码为了把减法变成加法。所以正数的补码是它本身,而负数的补码是为了和其绝对值相加后得到0的值,但是这个0实际前面还有个溢出的1。
比如4位的-3的补码,应该和4位的3的补码的和等于10000,然后1溢出,则和为0。这里3的补码是它本身0011。
即(-3)补+(3)补=10000
(-3)补=10000-(3)补=10000-0011
=1111+0001-0011
=(1111-0011)+0001
1111-0011就是0011的取反,即3的取反。
所以绝对值取反加一是负数补码的一个性质,可以通过这个算法来求补码。但是不是补码的定义。
展开