方法1:用sizeof(int)来获取int类型所占的内存字节数
sizeof是一个单目运算符,返回一个对象或者类型所占的内存字节数。sizeof有三种语法形式:
(1)sizeof(object); 例如:int i; sizeof(i);
(2)sizeof(type_name); 例如:sizeof(int);
(3)sizeof object; 例如:sizeof i;
在此处,int类型占4Byte,也就是有4*8=32bit
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int i = sizeof(int);
long long int_max= pow(2,i*8-1)-1;
cout<< int_max <<endl;
long long int_min= -pow(2,i*8-1);
cout<< int_min <<endl;
return 0;
}
方法2:直接分析得出最大和最小值
计算机内规定最高位为符号位,0为正,1为负
int最大值应为0x7FFFFFFF,7的二进制形式的最高位为0,表示正数
int最小值表示为0x80000000,8的二进制形式的最高位为1,为负数
#include <iostream>
using namespace std;
int main()
{
int a=0x7FFFFFFF;
int b=0x80000000;
cout << a <<endl;
cout << b <<endl;
return 0;
}
方法3:使用普通的循环结构,运行出结果所需时间较长
#include <iostream>
using namespace std;
int int_max()
{
int n=0,i=0;
while(n<=i)
{
n=i;
i++;
}
return n;
}
int int_min()
{
int n=0,i=0;
while(n>=i)
{
n=i;
i--;
}
return n;
}
int main()
{
cout << int_max() <<endl;
cout << int_min() <<endl;
}
方法4:使用标准库limits.h
定义了一些最大最小值常量,int
类型的最大值常量INT_MAX
,最小值常量INT_MIN
#include <iostream>
#include <limits.h>
using namespace std;
int main()
{
cout << INT_MAX <<endl;
cout << INT_MIN <<endl;
return 0;
}