对于补码的一些理解
补码
相关概念&理解
补码其实就是计算机中为了解决减法的问题所提出的相关的问题,而这种解决的方法其实也就涉及到了
mod
的运算,假如在mod 12下,那么11(mod 12) = -1(mod 12),这种其实也就是数论中所讲述的同余式
。那么这些东西在二进制中其实也是同样适用的,现在假定位长是
5bit
,对于负数-15 = (11111)2 ,那么在计算机中所采用的其实也是模运算,这里mod的数其实就是这里最高位所代表的二进制的数据,譬如这里就是mod(24),那么对于-15而言,它其实也就是对应着-15 + 24 ,这两者其实在mod(24)是等价的。同时它的补码也就是1(不考虑符号位),但是符号位是不能够改变的,那么其实它的补码其实也就是(10001)2。而现在需要进行异号的加法运算,如:8 + (-15),这种其实在计算机中其实是采用补码来实现的,那么它转化为二进制来运算就是(01000)2 + (10001)2 = (11001)2,而这算出来其实也结果的补码,对其重新取模运算(不管符号位),也就是
-7
,那么加上符号位了之后就是(10111)2。还有就是正数补码取反加一是其负数的补码,负数补码取反加一是它的绝对值。对于取反运算其实是不会改变符号位的