定点数的编码表示

最常见的有原码、反码、补码、移码四种编码方式

  • 原码

    常用来表示浮点数的尾数

    最高位是符号位,数值部分用真值的绝对值表示

    定点数的编码表示

  • 反码

    直接是原码的按位取反,在求补码的过程中会用到反码,纯粹是为了硬件容易实现

  • 补码

    用来表示定点整数

    补码的来源------模运算

    • 一个负数的补码等于模数减去该负数的绝对值,当X<0时,[X]=M-|X|=M+X,(这里的M表示模数,[X]表示对X求补码)。
    • 对于某一个确定的模,减去一个数,等于加上负数的补码,这使得计算机中的加减法得到统一,可以对比模12的时钟,eg. -8=4(mod12)相当于减8等于加4。
    • 求补码的规律,根据上面的公式可以推出来,无论X的正负,-X的补码恰好是X按位取反再加一。比如8位数X=10000001(补码) -X=01111110+1=01111111
      定点数的编码表示
  • 移码,常用来表示浮点数中的阶码
    使用移码的原因,在浮点数加减运算时需要对阶,而浮点数的阶数有正有负,移码可以使阶码变为非负数,简化操作

    n位移码[X]=2^(n-1)+X ([X]在这里表示X的移码)