1、int类型取值范围
int类型为4字节共32位,所以一个int能够表示的数据的范围为: [−231, 231− 1],表示为十进制为:[-2147483648 ~ 2147483647]。
2、如何判断是否溢出
int数据类型出现异常的情况一般是在数据发生加法和乘法操作。对于加法运算:
#define INT_MAX 2147483647
int a = INT_MAX;
int b = 1;
int c = a + b; //error int溢出
//提前检测是否溢出
if(INT_MAX - a < b)
cout<<"发生溢出“;
else
int c = a + b;
对于乘法操作:
int a = INT_MAX/2;
int b = 3;
int c;
c = a * b; //error int溢出
//提前检测是否溢出
if(INT_MAX/a < b)
cout<<"发生溢出";
else
c = a * b;
3、使用long long类型提前判断int大小
long long res;
//sign表示res的正负值
if( ((sign>0) && (res > 0x7FFFFFFF)) || ((sign<0) && (res > 0x80000000)) )
cout<<"发生溢出";