您的位置:首页 > 编程语言

各种数据类型的取值范围(自查)

2012-11-21 16:13 197 查看
       在写程序的过程中我们有时候会处理一些极大地数据,这时候就会出现一些困惑各种数据类型的大小,声明的时候让自己很谨慎, 于是碰到较大的数值就直接long类型的的变量就声明了,在C函数库Limits中包含着对于所用编译器中各个数据类型的取值范围。下面是程序代码。
/*本程序中得到启示:在输出不同类型的数据时,输出格式也要相应改变
* long类型的要添加‘l’,unsigned要添加'u'否则会发生越界*/
#include <limits.h>
#include <stdio.h>

int main()
{
printf("The Bits Of Type Char: %d \n",CHAR_BIT);
printf("The Max Of Char: %d \n",CHAR_MAX);
printf("The Min Of Char: %d \n",CHAR_MIN);
printf("The Max Of Int: %d \n",INT_MAX);
printf("The Min Of Int: %d \n",INT_MIN);
printf("The Max Of Long: %ld \n",LONG_MAX);
printf("The Min Of Long: %ld \n",LONG_MIN);
printf("The Max Of Short: %d \n",SHRT_MAX);
printf("The Min Of Short: %d \n",SHRT_MIN);
printf("The Max Of unsigned Char: %u \n",UCHAR_MAX);
//此处如果是%d,会显示越界
printf("The Max Of unsigned Int: %u \n",UINT_MAX);
printf("The Max Of unsigned Short: %u \n",USHRT_MAX);
//此处如果是%d,会显示越界
printf("The Max Of unsigned Long: %lu \n",ULONG_MAX);
return 0;
}

这是我自己的电脑windows32位机的运行结果。



通过上图可以发现int与long的数值范围是一致的,因为在32位操作系统中,int跟long都占4字节,char占1个字节,short占两个字节。数值最大取值为1000000000(<2147483647),在32位系统中时完全不会越界的。(平时都被一些极为老式的教科书上说的int占2个字节声明为unsigned最大才为65535给蒙了)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编程