机器数:原码、反码、补码

(TODO)

机器数

计算机中的数称为机器数。它是由:符号位+数值构成的,其中:

  • 符号位中,0表示正,1表示负;
  • 数值部分称为真值,真值可以理解为绝对值;

+52 = +0110100 = 0 0110100

机器数的表示方法:

  • 原码
  • 反码
  • 补码

原码

最高位为符号位,其余为真值部分,其中符号位,0表示正,1表示负

优点:真值和其原码表示之间的对应关系简单,容易理解

缺点:

  • 计算机中用原码进行加减运算比较困难
  • 0的表示不唯一
    • 8位数0的原码
      • +0 = 0 0000000
      • -0 = 1 0000000

反码

定义:对一个机器数X:

  • 若X>0,$ [X]_反 = [X]_原 $
  • 若X<0,$ [X]_反 = 对应原码的符号位不变,数值部分按位求反 $

补码

定义:对一个机器数X:

  • 若X>0,$ [X]_补 = [X]_反 = [X]_原 $
  • 若X<0,$ [X]_补 = [X]_反 + 1 $

机器数

参考

  1. https://www.coursera.org/lecture/jisuanji-wangluo/ji-qi-shu-de-biao-shi-k3xPV?isNewUser=true
  2. http://www.ruanyifeng.com/blog/2009/08/twos_complement.html
  3. https://blog.csdn.net/zl10086111/article/details/80907428/
  4. https://www.bilibili.com/video/BV1xa4y1s7K7