标签:
对于有符号而言
1. 二进制的最高位是符号位:0表示整数,1表示负数
2. 正数的源码,反码和补码都是一样的
3. 负数的反码=它的源码符号位不变,其他位取反
4. 负数的补码=它的反码+1
5. 0的反码,补码都是0
6. 在计算机运算的时候,都是以补码的方式来运算
例如:1+(-2)在计算机里是这样运行的
-2的源码:1000 0010 -2的反码:1111 1101 -2的补码:1111 1101 + 0000 0001 = 1111 1110 1 + (-2) = 0000 0001 + 1111 1110 = 1111 1111 将计算结果还原到反码的形式(反码 = 补码 - 1) 1111 1111 - 0000 0001 = 1111 1110 将符号位还原到反码形式(源码 = 符号位不变,反码取反) 1000 0001 = -1
说明:在计算机里只有加法运算,(1 - 2 = -1)也是通过(1 + (-2) = -1)加法实现的
标签:
原文地址:http://www.cnblogs.com/phpfans/p/4197039.html