CPP学习之——为什么使用补码(4.8)

一 前言

我们先看下计算机计算2-1如何表示 ?

1
2
3
  0000 0010 
-
0000 0001

二 说明过程

  • 我们知道,计算机中没有减法,负数编码二进制的补码形式 ,2-1实际的计算形式是2+(-1)
  • -1的补码是1000 0001取反1111 1110,再加1变为1111 1111

三 计算过程

1
2
3
4
  0000 0010 
+
1111 1111
=(丢弃1)0000 0001
  • 结果为1

四 说明

  • 我们看到,为了使计算机执行减法,采用了负号
  • 然后再将负数转换为补码,这样就可以得到正确的结果
  • 这就是补码的作用