整数在计算机中都是以二进制的方式存储的,例如 2 = 0000 0010。最高位是符号位,0表示正数,1表示负数。正数的情况很容易理解,但是负数存储的是补码
,-2 = 1111 1110。
(一) 概念
以8位的字长为例
正数补码==原码
负数补码为,除符号位外取反,然后加1
+2 = 0000 0010[原码] = 0000 0010[补码]
-2 = 1000 0010[原码] = 1111 1110[补码]
(二) 为什么要用补码
补码是为了解决减法的问题。因为二进制表示中最高位是符号位,如果要让计算机电路在计算过程中识别符号位,会让电路变得复杂,所以干脆让符号位直接参与运算。
显然,在减法的情况下会出问题。如果换做补码的话
很好的解决了减法的问题,将加法和减法合并为了一套电路。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/wkupaochuan/article/details/46874943