发布于 2012-04-05 16:51:49
10楼
2147483647的二进制是0111.1111.1111.1111.1111.1111.1111.1111
-2147483647的二进制是1000.0000.0000.0000.0000.0000.0000.0001
2147483647减去-2147483647等于010,正好是十进制的2
而2147483647加上2即010则为1000.0000.0000.0000.0000.0000.0000.0001,正好是-2147483647,何来1呢,难道把最高位的1当符号位省略了??
负数是用补码表示的,补码是原码取反加1,对于最大的正数来说,取反就等于加1,再加1正好是加2,原码加2出来的就是补码,怎么会是1呢?