首页 > 代码库 > 原码 反码 补码

原码 反码 补码

0,计算机存储负值以补码形式存储。

1,正数的 原码,反码,补码都一样。

2,负数的反码:符号位不变,其他位按位取反; 负数的补码:此负数的反码 +1;

3, 补码的补码 是原码。由补码推导原码两种方法:1,对此补码求补码,2,此补码 -1然后按位取反(符号位除外)

4,按位非操作的本质:操作数的负值减一。自己推导如下:

  正数:

200000010 11111101 10000010 10000011
 A  B     DC


    ~A=B(负值的补码,也即是计算机存储负值的形式)
    B按位取反(符号位不变) =D(D=-A)
    D+ 1 = C(负值的原码) [实际上是D-1=C]
    即C=D-1=-A-1

  负数:由补码的补码=原码  => 补码取反(符号位不变为仍1) + 1 = 原码=> 补码取反 = 原码-1 =>补码取非 = -(原码 - 1).

原码 反码 补码