存在!
首先我们知道int的取值范围是:
-2147483648~2147483647,最高位为符号位
2147483647的二进制为:01111111 11111111 11111111 11111111
那么2147483647+1,计算机的底层逻辑是二进制相加:
01111111 11111111 11111111 11111111
00000000 00000000 00000000 00000001
10000000 00000000 00000000 00000000
=-2147483648
代码验证
这里是拿int类型32位做例子,可以看出,当最高位为1时,它既是符号位,也是数值位
进一步推理是否存在11111111 11111111 11111111 11111111这样的数?
答案:不存在,可以看出,当为最小负数时,会先判断是否达到最小负数,然后再次相加
即:2147483647+5=
(2147483647+1)+4=
-2147483648+4=
-2147483644