在 C/C++ 中使用 INT_MAX 和 INT_MIN

2023-11-17

在本文中,我们将了解在 C/C++ 中使用 INT_MAX 和 INT_MIN。

这些实际上是有用的宏,它们表示最大和最小整数值。

让我们用一些例子来看看它。


使用 INT_MAX 和 INT_MIN

INT_MAX 是一个表示最大整数值的宏。同样,INT_MIN 表示最小整数值。

这些宏定义在头文件中<limits.h>,所以您必须包含它。

#include <limits.h>

INT_MAX

INT_MIN

请注意,任何整数变量都必须位于 INT_MIN 和 INT_MAX 之间。

通常,整数存储为 4 个字节(32 位)。

这意味着在几乎所有机器中,最大整数值为 2^(31) - 1 = +2147483647。

最小整数值为 -(2^31) = -2147483648

让我们为我们的机器验证一下。

#include <stdio.h>
#include <limits.h>

int main() {
    printf("Maximum Integer Value: %d\n", INT_MAX);
    printf("Minimum Integer Value: %d\n", INT_MIN);
    return 0;
}

Output

Maximum Integer Value: 2147483647
Minimum Integer Value: -2147483648

事实上,我们得到了我们的预测。

现在让我们举另一个例子,正确预测任何整数溢出或下溢。

#include <stdio.h>
#include <limits.h>

int main() {
    int value = 0;
    while (value >= 0) {
        // Check for overflow
        if (value == INT_MAX) {
            printf("value = %d. Possible overflow!\n", value);
        }
        value ++;
    }
    printf("Now, value = %d\n", value);
    value = 0;
    while (value <= 0) {
        // Check for underflow
        if (value == INT_MIN) {
            printf("value = %d. Possible underflow!\n", value);
        }
        value --;
    }
    printf("Now, value = %d\n", value);
    return 0;
}

Output

value = 2147483647. Possible overflow!
Now, value = -2147483648
value = -2147483648. Possible underflow!
Now, value = 2147483647

虽然这需要花费几秒钟的时间来运行,但这确实达到了我们的预期。

整数将溢出到INT_MIN,并将下溢到INT_MAX.

这对于检测值的此类跳跃很有用。


为什么我们需要这些宏?

通常,对于某些算法,有时需要将变量初始化为最低/最高值。

数据类型的位数可能因机器而异。

为了使最大/最小值的使用保持一致,如果每个人都可以使用相同的宏就方便了!

这正是这些宏存在的原因 -

  • 以免您记住实际值
  • 在所有机器上具有一致的编程模式
  • 使用起来非常方便

希望这些原因可以说服您在构建自己的 C/C++ 库时使用此类宏。


结论

在本文中,我们学习了如何在 C / C++ 中使用 INT_MAX 和 INT_MIN 宏。

对于类似的内容,请浏​​览我们的教程部分关于C编程。

参考

  • cplusplus.com 页面在极限上

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C/C++ 中使用 INT_MAX 和 INT_MIN 的相关文章