关于正数的补码是其本身

正数的补码是其本身。这个是定义好的吗?还是通过运算可以证明?

阅读 7.3k
2 个回答

首先,整数的编码是先有最直观的非负数,然后再加上负数作为补充。补充负数的时候非负数的表达方法不能改变,这是很自然的。就如同硬件设计上都讲平稳退化一样。

其次,补码是完全的人为定义。正数的补码是其本身,这只是为了符合补码的设计原则:

  1. 任何两个补码直接二进制简单相加,即可得到正确运算结果并仍是补码
  2. 0不存在所谓“正0”和“负0”的二义性
  3. 符合惯例和直观感受

计算机可以通过补码,正确地运算二进制减法。

我们再来用 3+(-2) 来验证一下。正数 3 的补码仍然是 0000…0011,-2 的补码是 1111…1110,两者相加,最后得到了正确的结果 1 的二进制。

参考资料 《程序员的基础数学课》课外加餐 一
推荐问题
logo
101 新手上路
子站问答
访问
宣传栏