原码、补码、反码对比

来自姬鸿昌的知识库
跳到导航 跳到搜索

原码

优点

  • 表示方法简单直观

缺点

  • 符号位不能直接参与运算
  • 真值0在原码中有两种不同的表示

应用

原码在计算机中目前仅仅用于表示浮点数的尾码(也就是尾数)。



补码

优点

  • 补码表示方法使得减法运算可以转换成加法运算。
  • 真值 0 在补码中只有一种表示,这使得补码比原码和反码多表示一个最小负数。
  • 符号位可以直接参与运算,运算时符号位的进位作为模会被自动舍弃。

缺点

  • 补码的表示比原码复杂。
    • 原码的数值位与真值的绝对值相同。通过原码可以很容易地得出真值。但是,补码就没有这么简单了。

应用

通常不会涉及定点小数的补码表示。





反码

优点

  • 符号位可以参与运算。

缺点

  • 最高位(符号位)产生的进位要加到运算结果的低位(循环进位)
  • 真值 0 在反码中有两种不同的表示

应用

反码在计算机中目前很少被使用。通常用来作为由原码求补码或者由补码求原码的中间过渡。