c语言int类型数值占四个字节,就是32位。有符号能表示的范围为-2147483648 ~ 2147483647,无符号数表示的范围0~4294967295。
大于0的数:
#include<stdio.h>
int main(void)
{
unsigned int x = 4294967295;
int y= 2147483647;
printf("%u,%u,%u\n", x, x+1, x+2);
printf("%d,%d,%d\n", y, y+1, y+2);
return 0;
}
运行结果:
我们发现当unsigned int 类型超出最大值时他会从0开始,而int类型的变量i则从
−2147483648开始。其实就是当超出最大值时会减去4294967296。
对于超出最小值的数会加上4294967296。c语言对于溢出行为不会通知,所以有时编程要考虑会不会溢出。
当int类型会溢出时,可以用long 类型或者long long 类型。