因为补码的关系。现在计算机都是认补码的。
而源码在正数上和补码一致。按照2进制算就可以了。
补码的话,是第一位为1表示为负数,之后的位数都取反,然后+1,再按二进制计算。
- 1111 1111 1111 1111 1111 1111 1111 0110
- 1000 0000 0000 0000 0000 0000 0000 1001 +1
- 1000 0000 0000 0000 0000 0000 0001 0000 就成10了
复制代码
补充下:
原码,反码,补码,正数全部一样
负数,全部是第一个为1的时候是负数。
原码,第一个为1后面的都不变。
反码,第一个为1后面的全取反。
补码,第一个为1后面的全取反+1
|