各种数据类型的取值范围(自查)
2012-11-21 16:13
197 查看
在写程序的过程中我们有时候会处理一些极大地数据,这时候就会出现一些困惑各种数据类型的大小,声明的时候让自己很谨慎, 于是碰到较大的数值就直接long类型的的变量就声明了,在C函数库Limits中包含着对于所用编译器中各个数据类型的取值范围。下面是程序代码。
这是我自己的电脑windows32位机的运行结果。
通过上图可以发现int与long的数值范围是一致的,因为在32位操作系统中,int跟long都占4字节,char占1个字节,short占两个字节。数值最大取值为1000000000(<2147483647),在32位系统中时完全不会越界的。(平时都被一些极为老式的教科书上说的int占2个字节声明为unsigned最大才为65535给蒙了)。
/*本程序中得到启示:在输出不同类型的数据时,输出格式也要相应改变 * 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给蒙了)。
相关文章推荐
- C语言各种数据类型取值范围
- C语言中各种数据类型中所占的字节和取值范围
- 【转】各种数据类型的取值范围 C/C++标准库中定义的各个类型最大值最小值limit.h
- C语言各种数据类型在系统中占的字节和取值范围
- 编译器定义的C/C++语言各种基本数据类型的取值范围用程序输出
- (整理)c++中找出各种数据类型的取值范围
- C语言各种数据类型取值范围
- C语言各种数据类型取值范围
- 各种数据类型的取值范围
- C语言各种数据类型取值范围
- 各种数据类型的取值范围
- 编译器定义的C/C++语言各种基本数据类型的取值范围
- C语言各种数据类型在系统中占的字节和取值范围
- C语言各种数据类型的取值范围
- 各种数据类型的取值范围(总结全)
- 各种数据类型的取值范围
- C语言各种数据类型取值范围
- 【C】各种数据类型的取值范围(常用)
- 浅析各种数据类型的取值范围
- 各种数据类型的取值范围[转]----C/C++