一个C语言的数字型变量,怎样判断它可以容纳的最大值?
要判断某种特定类型可以容纳的最大值或最小值,一种简便的方法是使用ANSI标准头文件limits.h中的预定义值。该文件包含一些很有用的常量,它们定义了各种类型所能容纳的值,下表列出了这些常量:
----------------------------------------------------------------
常 量 描 述
----------------------------------------------------------------
CHAR—BIT char的位数(bit)
CHAR—MAX char的十进制整数最大值
CHAR—MIN char的十进制整数最小值
MB—LEN—MAX 多字节字符的最大字节(byte)数
INT—MAX int的十进制最大值
INT—MIN int的十进制最小值
LONG—MAX long的十进制最大值
LONG—MIN long的十进制最小值
SCHAR—MAX signedchar的十进制整数最大值
SCHAR—MIN signedchar的十进制整数最小值
SHRT—MIN short的十进制最小值
SHRT—MAX short的十进制最大值
UCHAR—MAX unsignedchar的十进制整数最大值
UINT—MAX unsignedint的十进制最大值
ULONG—MAX unsignedlongint的十进制最大值
USHRT—MAX unsignedshortint的十进制最大值
-----------------------------------------------------------------
对于整数类型,在使用2的补码运算的机器(你将使用的机器几乎都属此类)上,一个有符号类型可以容纳的数字范围为-2位数-1到(+2位数-1-1),一个无符号类型可以容纳的数字范围为0到(+2位数-1)。例如,一个16位有符号整数可以容纳的数字范围为--215(即-32768)到(+215-1)(即+32767)。
----------------------------------------------------------------
常 量 描 述
----------------------------------------------------------------
CHAR—BIT char的位数(bit)
CHAR—MAX char的十进制整数最大值
CHAR—MIN char的十进制整数最小值
MB—LEN—MAX 多字节字符的最大字节(byte)数
INT—MAX int的十进制最大值
INT—MIN int的十进制最小值
LONG—MAX long的十进制最大值
LONG—MIN long的十进制最小值
SCHAR—MAX signedchar的十进制整数最大值
SCHAR—MIN signedchar的十进制整数最小值
SHRT—MIN short的十进制最小值
SHRT—MAX short的十进制最大值
UCHAR—MAX unsignedchar的十进制整数最大值
UINT—MAX unsignedint的十进制最大值
ULONG—MAX unsignedlongint的十进制最大值
USHRT—MAX unsignedshortint的十进制最大值
-----------------------------------------------------------------
对于整数类型,在使用2的补码运算的机器(你将使用的机器几乎都属此类)上,一个有符号类型可以容纳的数字范围为-2位数-1到(+2位数-1-1),一个无符号类型可以容纳的数字范围为0到(+2位数-1)。例如,一个16位有符号整数可以容纳的数字范围为--215(即-32768)到(+215-1)(即+32767)。