原码、反码、补码、移码

原码

如果机器字长为n,那么一个数的原码就是一个n位的二进制数

  • 最高位为符号位:正数为0,负数为1
  • 剩下的n-1位表示原数的绝对值

例如:
  x=+101011,[x]=0010 1011
  x=-101011,[x]=1010 1011

位数不够的用0补全


反码

正数的反码和原码相同
负数则在原码的基础上,符号位不变,其他位按位取反。
例如:
  x=+101011,[x]=0010 1011,[x]=0010 1011
  x=-101011,[x]=1010 1011,[x]=1101 0100


补码

正数的补码和原码相同
负数则在反码的基础上,按照正常的加法+1
例如:
  x=-101011,[x]=1010 1011,[x]=1101 0100,[x]=1101 0101

0的补码是唯一的,如果机器字长为8,[0]=0000 0000


移码

将补码的符号位取反
例如:
  x=-101011,[x]=1010 1011,[x]=1101 0100,[x]=1101 0101,[x]=0101 0101

猜你喜欢

转载自blog.csdn.net/qq_29159273/article/details/53580918