📅  最后修改于: 2023-12-03 15:29:42.913000             🧑  作者: Mango
在 C++ 中,我们可以使用 std::numeric_limits
类来获取数值类型的最大和最小值。这个类定义在 <limits>
头文件中,可以通过以下方式引入:
#include <limits>
然后我们就可以使用 std::numeric_limits
这个类来获取数值类型的最大值和最小值了。
对于整数类型,std::numeric_limits<int>::max()
可以返回 int 类型的最大值,std::numeric_limits<int>::min()
可以返回 int 类型的最小值。例如:
#include <limits>
#include <iostream>
int main()
{
std::cout << "int 最大值为:" << std::numeric_limits<int>::max() << std::endl;
std::cout << "int 最小值为:" << std::numeric_limits<int>::min() << std::endl;
return 0;
}
输出结果为:
int 最大值为:2147483647
int 最小值为:-2147483648
我们也可以使用 std::numeric_limits<unsigned int>::max()
来获取 unsigned int 类型的最大值,std::numeric_limits<unsigned int>::min()
来获取 unsigned int 类型的最小值。
#include <limits>
#include <iostream>
int main()
{
std::cout << "unsigned int 最大值为:" << std::numeric_limits<unsigned int>::max() << std::endl;
std::cout << "unsigned int 最小值为:" << std::numeric_limits<unsigned int>::min() << std::endl;
return 0;
}
输出结果为:
unsigned int 最大值为:4294967295
unsigned int 最小值为:0
对于浮点数类型,std::numeric_limits<float>::max()
可以返回 float 类型的最大值,std::numeric_limits<float>::min()
可以返回 float 类型的最小值。例如:
#include <limits>
#include <iostream>
int main()
{
std::cout << "float 最大值为:" << std::numeric_limits<float>::max() << std::endl;
std::cout << "float 最小值为:" << std::numeric_limits<float>::min() << std::endl;
return 0;
}
输出结果为:
float 最大值为:3.40282e+38
float 最小值为:1.17549e-38
我们也可以使用 std::numeric_limits<double>::max()
来获取 double 类型的最大值,std::numeric_limits<double>::min()
来获取 double 类型的最小值。
#include <limits>
#include <iostream>
int main()
{
std::cout << "double 最大值为:" << std::numeric_limits<double>::max() << std::endl;
std::cout << "double 最小值为:" << std::numeric_limits<double>::min() << std::endl;
return 0;
}
输出结果为:
double 最大值为:1.79769e+308
double 最小值为:2.22507e-308
除了上面提到的 int、unsigned int、float 和 double 类型,std::numeric_limits
类也可以用来获取其他数值类型的最大值和最小值。例如:
#include <limits>
#include <iostream>
int main()
{
std::cout << "short 最大值为:" << std::numeric_limits<short>::max() << std::endl;
std::cout << "short 最小值为:" << std::numeric_limits<short>::min() << std::endl;
std::cout << "long 最大值为:" << std::numeric_limits<long>::max() << std::endl;
std::cout << "long 最小值为:" << std::numeric_limits<long>::min() << std::endl;
std::cout << "long long 最大值为:" << std::numeric_limits<long long>::max() << std::endl;
std::cout << "long long 最小值为:" << std::numeric_limits<long long>::min() << std::endl;
std::cout << "unsigned long 最大值为:" << std::numeric_limits<unsigned long>::max() << std::endl;
std::cout << "unsigned long 最小值为:" << std::numeric_limits<unsigned long>::min() << std::endl;
return 0;
}
输出结果为:
short 最大值为:32767
short 最小值为:-32768
long 最大值为:9223372036854775807
long 最小值为:-9223372036854775808
long long 最大值为:9223372036854775807
long long 最小值为:-9223372036854775808
unsigned long 最大值为:18446744073709551615
unsigned long 最小值为:0
通过使用 std::numeric_limits::max()
和 std::numeric_limits::min()
,我们可以方便地获取任何数值类型的最大值和最小值,并在程序设计中使用它们来进行约束和限制。