先说下我的理解:
从软件出发:
1、方便加减运算。拿钟表来说吧,早上6点 --3个小时=凌晨3点。早上6点+9个小时=下午3点。同样都是钟表“3”的位置,6-3=6+9;加法运算是不是方便多了呢。所以负数
其实我们小学算数时,老师就告诉我们:3-2可以看成3+(-)2.
2、对于负数来说,原码+补码=0 (因为原码+补码=原码+反码+1=1111+1=0000)
所以用补码比用反码表示负数,运算上方便多了。
从硬件出发:
1、可以将减法变为加法,省去了减法器
2、无符号及带符号的加法运算可以用同一电路完成。
3、负数的补码,与其对应正数的补码之间的转换可以用同一种方法----求补运算完成,简化硬件。
下面是别人的说法:
补码运算的优点:
(1)减法运算可以用加法来实现,即用求和来代替求差。
(2)数的符号位可以同数值部分作为一个整体参与运算。
(3)两数的补码之和(差)=两数和(差)的补码
原码 补码
A 1100 1100
B 1101 1011
A+B 1001 0111
A+B的补码 0111