现在的位置: 首页 > 综合 > 正文

C中确定整型的范围

2013年04月23日 ⁄ 综合 ⁄ 共 422字 ⁄ 字号 评论关闭
 #include <stdio.h>

int main()
{
        printf("signed int min = %d\n", -(int)((unsigned int) ~0 >> 1));
        printf("signed int max = %d\n", (int)((unsigned int) ~0 >> 1));
}

(1)先把数字0的各个二进制位全部转换成1

~0

(2)将结果值转换成unsigned int类型

(unsigned int) ~0

(3)把上面的值右移一位以清除符号位

(unsigned int) ~0 >> 1

(4)最后把它转换成int类型

(int)(unsigned int) ~0 >> 1

法二调用头文件<limits.h>其中有各种类型的取值范围.

如:

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

int main()
{
           printf("signed int min = %d\n", INT_MIN);
           printf("signed int max = %d\n", INT_MAX);
}

抱歉!评论已关闭.