在C中,如何编写程序来查找整数变量的最大值? 据我所知,整数变量的最大值是2147483647,但我怎样才能在C程序中表示它?
答案 0 :(得分:7)
因为我知道整数变量的最大值是2147483647
这是一个错误的假设。 int
的最大值可能因系统而异。例如,在16位机器上,int
的最大值不是2147483647。
您无需亲自找到它。您可以在<limits.h>
中使用预定义的宏。例如,INT_MAX
表示int
可以容纳的最大值。
答案 1 :(得分:6)
您无法通过计算以编程方式找到此值。没有办法检测到你“在最后”,并且递增最大整数具有未定义的行为。
这就是为什么<limits.h>
标题中的标准库为您提供了给你的最大和最小值的整数类型。确保操作结果符合所需类型是 的责任。
答案 2 :(得分:2)
最大值和最小值在限制中定义。 您可以使用以下代码验证这些。
C版:
#include <stdio.h>
#include <limits.h>
int main()
{
printf("Minimum Int value:%d\n", INT_MIN);
printf("Minimum Int value:%d\n", INT_MAX);
return 0;
}
在C ++中
#include "stdafx.h"
#include <iostream>
#include <limits>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Minimum Int value:" << INT_MIN << endl;
cout << "Maximum Int value:" << INT_MAX << endl;
return 0;
}
备用(非Visual Studio版本如下):
#include <iostream>
#include <string>
#include <limits.h>
using namespace std;
int main()
{
std::cout << "Minimum Int value:" << INT_MIN << endl;
std::cout << "Maximum Int value:" << INT_MAX << endl;
}
如果您对其他数据类型的最大值和最小值感兴趣,可以在下面的网站中找到常量名称E.G INT_MIN和INT_MAX。
http://www.cplusplus.com/reference/climits/
答案 3 :(得分:0)
我知道已经很晚了,但是如果必须将其计算为赋值,则可以使用sizeof()
运算符,这将给出整数保存的字节数。
2^((number of bytes*8) - 1)
应该给出整数的最大值。
当然sizeof()
也像INT_MAX
一样是编译时间。