求助 | 关于INT_MAX
1049
2024.05.18
2024.05.18
发布于 中国

今天心血来潮想试一下关于用INT_MAX加一会不会是INT_MIN,于是我先赋值int a = INT_MAX,再加一,再判断,果然与INT_MIN相等,接着我直接用INT_MAX + 1 == INT_MIN也成功了,但是当我先赋值int a = INT_MAX,再判断a + 1 == INT_MIN的时候却没有成功,于是我开始试a + 1的值,先是写了个二分,却陷入死循环迟迟不输出,于是我手动试,却得出个很神奇的结果,判断a + 1 < INT_MAX成功,判断a + 1 > INT_MAX - 2成功,按理来说就是INT_MAX - 1了,但是我判断a + 1 == INT_MAX - 1却不成功,判断a + 1 >= INT_MAX - 1却成功,就很神奇,是if语句中有什么特殊规则吗?求大佬解惑
补充:我直接cout << a + 1结果就是INT_MIN
image.png

评论 (12)