C++中int型的负数是以补码的形式存在的。
例如:
正数是其自身,0~0111 1111 1111 1111=0~32767
负数则为其正数的取反+1:
-1 = -0000 0000 0000 0001=1111 1111 1111 1110 +1=1111 1111 1111 1111
最小的负数为:
-32768=-1000 0000 0000 0000 = 0111 1111 1111 1111 +1 =1000 0000 0000 0000
以补数形式表示,可以将减法和加法协调统一。
5+(-1)= 0000 0000 0000 0101 + 1111 1111 1111 1111 1111
= 1 0000 0000 0000 0100=4
最高位溢出