关于二进制的原码 、反码、补码的简要解释说明

一、原码

正数的原码:一个正数,按照绝对值大小转换成的二进制数,称为这个正数的原码。

负数的原码: 一个负数,按照绝对值大小转换成二进制数,然后最高位补1,称为这个负数的原码。

  例如  00000000   00000000   00000000    00000101  是5的原码

           10000000   00000000   00000000    00000101   是-5的原码

           00000000   00000000   00000000    00001010 是10的原码

           10000000   00000000   00000000    00001010 是-10的原码

二、反码

正数的反码:正数的反码和原码相同。

负数的反码:负数的反码是对其原码除最高位外每一位都取反(每一位取反,除最高位)

 例如    5的原码是  00000000   00000000   00000000    00000101 

            5的反码是  00000000   00000000   00000000    00000101   没变

            -5的原码是   10000000   00000000   00000000    00000101

            最高位不变,其余各位都取反(如果是1则取0,如果是0则取1)

     所以 -5的反码是       11111111   11111111     11111111   11111010

        10的原码是  00000000   00000000   00000000    00001010

         10的反码是  00000000   00000000   00000000    00001010   没变

          -10的原码是    10000000   00000000   00000000    00001010

         最高位不变,其余各位都取反(如果是1则取0,如果是0则取1)

          -10的反码是    11111111     11111111     11111111    11110101

三、补码

正数的补码:正数的补码和原码相同。即正数的原码、反码和补码都相同。

负数的补码:负数的补码是是对其原码除最高位外每一位都取反,然后在最低位加1,就是负数的补码

    例如: -5的原码是  10000000   00000000   00000000    00000101

    首先是对其原码除最高位外每一位都取反 (如果是1则取0,如果是0则取1)-5的原码最高位是 1,取反后最高位还是 1

             即     11111111   11111111     11111111   11111010        

      然后在最低位加1 即  11111111   11111111     11111111   11111010 + 1

   那么-5的补码是    11111111   11111111     11111111   11111011

     -1 的原码:10000000   00000000   00000000    00000001

     -1 的反码:11111111   11111111   11111111   11111110  (对其原码除最高位外每一位都取反)

    -1的补码:  11111111   11111111   11111111   11111111     (对其原码除最高位外每一位都取反 再加1)

补充说明:(1)最高位就是符号位,正数的原码符号位是 0 ,负数的原码符号位是 1.

   (2)负数的求反码和补码的

猜你喜欢

转载自www.cnblogs.com/yang2000/p/11537725.html