1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > C语言中的<limits.h>

C语言中的<limits.h>

时间:2021-03-08 11:37:10

相关推荐

C语言中的<limits.h>

<limists.h>头文件专门用于检测整形数据数据类型的表达值范围。(浮点型类似的有<float.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),无符号整数类型的范围是:0到(+ 2^位数 -1),这里一定要注意!

例如下面的例子:

[cpp]

#include<stdio.h>

#include<limits.h>

voidmain()

{

printf("%d",UINT_MAX);

system("pause");

return0;

}

如果你运行上面的例子,会发现输出为-1,而不是你想得到的4294967295(我的机器是32位的),那这是什么原因呢?

无符号INT最大二进制为(11111111111111111111111111111111),也就是十六进制的(0xffffffff),

而我们是用(“%d”,)来输出的,即按有符号取补码输出,所以得到的是-1;

改成printf("%u",UINT_MAX)后,我们才能得到想要的答案。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。