原码、反码、补码

原码
  • 是一种计算机中对数字的二级制定点表示方法.原码表示法在数值前面增加了一位符号位(即最高位为符号位):0 表示正数,1 表示负数,0 有两种表示方法即+0 和-0。
  • +11 的原码表示为 00001011, -11 的原码就是 10001011
反码
  • 为什么会有反码?
    原码适合人的习惯,但却不利于计算机,比如 +1(00000001) 和-1(10000001) 相加本应该是 0, 但是按照原码的加起来(+1 +(-1) = +1 -(+1) = 1-1)却是-2(10000010),于是人们发明了反码来解决原码做减法的问题
  • 反码怎么表示呢?
    正数的反码还是自身
    负数的反码是: 符号位不变,其余位按位取反。比如-1(10000001) 的反码就是 11111110 。这样+1 和反码(00000001) 和-1 的反码(11111110) 相加就是 11111111,刚好是-0(10000000) 的反码。
补码
  • 为什么会有补码?
    反码虽然解决了+1 加-1 等于 0 的问题,但也存在+0 和-0,为了解决这个问题就出现补码。
  • 补码怎么表示呢?
    正数的补码还是其自身
    负数的补码是其反码+1,如果+1 产生进位,就将进位丢掉,比如 -0(10000000) 的反码是11111111 ,补码就是 00000000 因为 11111111 + 1 = 100000000产生了进位,丢掉最高位后就是 00000000,这样就解决了+0 和-0 的问题
移码

你可能感兴趣的:(原码、反码、补码)