如何编写程序来查找整数变量的最大值

时间:2016-10-19 09:48:40

标签: c variables int max

在C中,如何编写程序来查找整数变量的最大值? 据我所知,整数变量的最大值是2147483647,但我怎样才能在C程序中表示它?

4 个答案:

答案 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一样是编译时间。