原码、反码和补码,这些你都知道吗?

首先说明一下,正数的原码、反码和补码都是一样的,即原码=反码=补码
所以接下来我们主要说负数的原码、反码和补码之间的关系

1.原码

原码就是符号位加上真值的绝对值,即用第一位(最高位)表示符号,其余位表示值。比如:

1的原码    00000000000000000000000000000001
5的原码    00000000000000000000000000000101
-1的原码   10000000000000000000000000000001

2.反码(对负数)

反码等于原码符号位不变,其余位取反(即0变1,1变0)

-3   原码 10000000000000000000000000000011
     反码 11111111111111111111111111111100
-21  原码 10000000000000000000000000010101
     反码 11111111111111111111111111101010

3.补码(对负数)

补码=反码+1

-3   原码 10000000000000000000000000000011
     反码 11111111111111111111111111111100
     补码 11111111111111111111111111111101
     
-21  原码 10000000000000000000000000010101
     反码 11111111111111111111111111101010
     补码 11111111111111111111111111101011

4.运算

计算机在进行计算时,是补码之间进行运算,最终以原码表示结果。
如2 +(-5)= -3的运算

2的原码  00000000000000000000000000000010
   反码  00000000000000000000000000000010
   补码  00000000000000000000000000000010
-5的原码 10000000000000000000000000000101
    反码 11111111111111111111111111111010
    补码 11111111111111111111111111111011
    
2+-5)的运算(补码之间)
     000000000000000000000000000000102的补码)
     11111111111111111111111111111011-5的补码)
结果 111111111111111111111111111111012-5的补码形式)
     111111111111111111111111111111002-5的补码-1得到反码)
     100000000000000000000000000000112-5的反码符号位不变,其余位取反得到原码)
     10000000000000000000000000000011  等于-3(原码表示的就是最终运算结果)

猜你喜欢

转载自blog.csdn.net/qq_62316056/article/details/124185347