负数的表示法
在原来的系统中,负数采用第一位为1,正数位0的做法,比如:
3: 00000011
-3:10000011
但这样有一种特殊的情况,即0的表示会有正负值,即
0: 00000000
-0:10000000
这样的表达容易使计算机混乱,于是负数使用了补码的方式,即整数求反+1
比如-3的表示方式:
3 =>00000011
求反=>11111100
补码->11111101
那么0的补码为:
原码:00000000
求反:11111111
补码:00000000 :还是 0
这样0就不存在2种表示方式了。
另外,使用补码之后,正数与负数相加也可以使用同一个加法指令来处理。
比如-3 + 3
则是由:
00000011
+
11111101
==0
而按照原来的表达方式则是:
00000011
+
10000011
处理起来比较麻烦
因此补码来表示负数是相当科学的