转载自:C++整型上下限INT_MAX INT_MIN及其运算 - 知乎 (zhihu.com)
C++中常量INT_MAX和INT_MIN分别表示最大、最小整数,定义在头文件limits.h中。
#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX - 1)
因为int占4字节32位,根据二进制编码的规则,INT_MAX = 2^31-1,INT_MIN= -2^31.
在C/C++语言中,不能够直接使用-2147483648来代替最小负数,因为这不是一个数字,而是一个表达式。表达式的意思是对整数21473648取负,但是2147483648已经溢出了int的上限,所以定义为(-INT_MAX -1)。
C++中的INT_MAX是2^31-1,INT_MIN为-INT_MAX-1,这两个常量定义在limits.h中。由于-2147483648会导致溢出,所以INT_MIN不用该数值表示最小负整数。
2271

被折叠的 条评论
为什么被折叠?



