C 语言 int 的范围

17 Mar 2025 | 5 分钟阅读

在本文中,我们将讨论 C 语言中 int 的范围,并附带程序。

Int 的范围

数据类型及其大小和范围在 C 编程中扮演着重要角色。 sizeof() 运算符 返回存储特定形式的值在内存中所需的字节数。然而,为了防止编程中出现溢出和下溢错误,我们必须了解某种类型的范围。 C 为每种整数形式指定了精确的最小存储大小。例如,short 至少需要两个字节,long 至少需要四个字节。编译器决定数据类型的大小和范围。因此,我们不应该在程序中硬编码大小和范围值。

在没有 C 库的情况下手动查找数据类型的范围

给定公式定义了有符号类型的最小和最大范围

  • -(2N-1) 到 2N-1 - 1(其中 N 是 sizeof(type) * 8(它是整数类型使用的总位数))。

给定公式定义了无符号类型的最小和最大范围

  • 0 到 (2N-1) + (2N-1 - 1)

示例

让我们举个例子来查找 C 编程中整数的范围。

输出:执行此代码后,我们将获得如下所示的输出

Range of int = -2147483648 to 2147483647
Range of unsigned int = 0 to 4294967295
Range of char = -128 to 127
Range of unsigned char = 0 to 255
Range of long = -9223372036854775808 to 9223372036854775807
Range of unsigned long = 0 to 18446744073709551615
Range of short = -32768 to 32767
Range of unsigned short = 0 to 65535
Range of long long = -9223372036854775808 to 9223372036854775807
Range of unsigned long long = 0 to 18446744073709551615

使用 C 库查找数据类型的范围

上面描述的获取任何形式范围的方法很有趣,但不建议使用。通常建议使用预定义 C 库的功能。

Limits.hfloat.h 是 C 编程中定义最小和最大常量的两个头文件。 limits.h 指定整数类型和字符类型的常量。小和最大尺寸范围,总位数等等。 float.h 定义了浮点数。

示例

现在,让我们举个例子来理解如何使用 C 库查找整数的范围。

输出: 执行上述代码后,我们将得到如下输出

输出是

Range of signed int -2147483648 to 2147483647
Range of unsigned int 0 to 4294967295
Range of signed char -128 to 127
Range of unsigned char 0 to 255
Range of signed long int -9223372036854775808 to 9223372036854775807
Range of unsigned long int 0 to 18446744073709551615
Range of signed short int -32768 to 32767
Range of unsigned short int 0 to 65535
Range of float 1.175494e-38 to 3.402823e+38
Range of double 2.225074e-308 to 1.797693e+308
Range of long double 3.362103e-4932 to 1.189731e+4932

示例

编写一个程序,读取一个整数类型并对照给定的范围进行检查,看它属于哪个范围。

输出: 执行上述代码后,我们将得到如下输出

输出是

Input an integer: 28
Range [26,50]

示例

sizeof() 运算符用于确定整数形式或某些其他类型的大小。下面给出的程序演示了如何使用 sizeof() 运算符来确定系统中各种整数类型的大小。

输出: 执行上述代码后,我们将得到如下输出

输出是

sizeof(short) = 2 bytes
sizeof(int) = 4 bytes
sizeof(unsigned int) = 4 bytes
sizeof(long) = 8 bytes