原码,反码,补码和移码

  复习一下!

  

  1. 原码:如果机器字长为n,那么一个数的原码就是一个n位的二进制数,其中最高位为符号位,正数为0,负数为1.剩下的n-1位表示该数的绝对值。
  2. 反码:正数的反码是其本身,负数的反码就是在原码的基础上,符号位不变其他位按位取反就可以了。
  3. 补码:正数的补码是其本身,负数的反码是在其原码的基础上符号位不变,其余各位取反后加一。
  4. 移码:不管是正数还是负数,只要将其补码的符号位取反即可。
  5. 举例

 

数值1

数值-1

1+(-1)

+0

-0

原码

0000 0001

1000 0001

1000 0001

0000 0000

1000 0000

反码

0000 0001

1111 1110

1111 1111

0000 0000

1111 1111

补码

0000 0001

1111 1111

0000 0000

0000 0000

0000 0000

移码

1000 0001

0111 1111

0000 0000

0000 0000

0000 0000

  注意1:溢出部分不计算在内。

  注意2:0的补码移吗应当特殊记忆。

      [+0]  ≠ [-0]

      [+0] ≠ [-0]

      [+0] = [-0]

      [+0] = [-0]

上一篇:bilibiliclass26_C语言_数据的存储_原码、反码、补码_整形在内存中的存储


下一篇:C语言看计算机基础(一)