原码反码和补码

原码反码和补码

这里我们只讨论有符号数。我们都知道数在机器中都是以二进制表示的,而且常用二进制数的最高位表示其的正负,0为正,1为负

原码

原码的表示法很简单,对于一个二进制数n,

  • 当n为正数时,n的原码是在n上增加一个符号位0
  • 当n为负数时,n的原码是在n上增加一个符号位1
  • n为0时,在原码中,有两种表示0的方式:0.0000 1.0000

反码

对于一个二进制数n

  • 当n为正数时,n的反码和原码相同
  • 当n为负数时,n的反码的符号位为1,数值部分是原码的数值部分按位取反
  • 在反码表示中,有两种不同形式的0:0.0000 1.1111

补码

对于一个二进制数n

  • 当n为正数时,n的补码和n的原码相同
  • 当n为负数时,n的补码的符号为为1,数值部分是将原码数值按位取反加1
  • 当n为0时,在补码表示中,0的表示是唯一的:0.0000

tip: 一个数补码的补码等于这个数