对原码、反码和补码的理解

一个字节是8个bit位,也就是8位二进制数。

1、正整数的原码、反码和补码。

  100的原码:0110 0100

  100的反码:0110 0100

  100的补码:0110 0100

2、负整数的原码、反码和补码。

  -100的原码:1110 0100

  -100的反码:1001 1011

  -100的补码:1001 1100

注:

  1、正数的原码、反码和补码表示方式均相同,不需转换。

  2、负数转换成二进制数(也就是原码)在前面要加符号位(1)。

  3、负数的反码,将原码的各位取反,符号位不变

  4、负数的补码,将反码加上二进制1即可。

补码的由来:

  补码是为了简化减法而出现的。在我们计算减法的时候,将减号看作是负号,再将负数转化为补码求加法。这也是为什么正数的原码、反码和补码是一样的原因(和正数就没有关系)。

  在计算机系统中,数值一律用补码来表示和存储。是因为使用补码可以将符号位和数值域统一处理,同时加减法也可以统一处理。

例如:

  72 - 53 = 72 + (-53) = 

  72转化为二进制数为:0100 1000

  -53转化为二进制数为: 1011 0101   反码为: 1100 1010    补码为: 1100 1011

  72 + (-53) = 0100 1000 + 1100 1011 =  0001 0011 

  将二进制数0001 0011 转化为十进制数为19

  公式:被减数 - 减数 = 被减数 + (负的减数) = 被减数原码 + 负的减数补码 

猜你喜欢

转载自www.cnblogs.com/coolYuan/p/9234634.html