首页 > 代码库 > 简明数据类型指南

简明数据类型指南

常用的数据类型

  • char:字符在计算机的存储器中以字符编码的形式保存,字符编码是一个数字,因此在计算机看来,A与数字65完全一样(65是A的ASCII码)。
  • int:如果要保存一个整数,通常可以使用int。不同计算机中的int的大小不同,但至少应该有16位。一般而言,int可以保存几万以内的数字。
  • short:它通常只有int的一半大小,所以如果只想保存一个几百、几千的数字,可以使用这个数据类型。
  • long:一般大小是int的两倍,至少应该有32位,所以可以保存几十亿以内的数字;但大部分计算机的long和int一样大,因为在这些计算机中int本身就很大。
  • float:它是保存浮点数的基本数据类型。
  • double:如果想让计算结果精确到小数点以后很多位,可以使用double。double比float多占一倍的空间,可以保存更大,更精确的数字。

 

程序验证

下面我们用程序来验证一下:

 

#include<stdio.h>
#include<limits.h>  //还有表示整型大小的值 
#include<float.h>  //含有表示float和double类型大小的值
int main()
{
    printf("The value of INT_MAX is %i\n",INT_MAX);  //int 型最大值 
    printf("The value of INT_MIN is %i\n",INT_MIN);  //int 型最小值
    printf("An int takes %i bytes\n",sizeof(int));  //int所占字节 
    
    printf("The value of FLT_MAX is %f\n",FLT_MAX); //float
    printf("The value of FLT_MIN is %f\n",FLT_MIN);
    printf("An float takes %i bytes\n",sizeof(float));
    
    printf("The value of CHAR_MAX is %i\n",CHAR_MAX); //char
    printf("The value of CHAR_MIN is %i\n",CHAR_MIN);
    printf("An char takes %i bytes\n",sizeof(char));
    
    printf("The value of DBL_MAX is %lf\n",DBL_MAX); //double
    printf("The value of DBL_MIN is %lf\n",DBL_MIN);
    printf("An double takes %i bytes\n",sizeof(double));
    
    printf("The value of SHRT_MAX is %i\n",SHRT_MAX); //short
    printf("The value of SHRT_MIN is %i\n",SHRT_MIN);
    printf("An short takes %i bytes\n",sizeof(short));
    
    return 0;
} 

 

结果如下:

技术分享

 

思考

问题1:8位、64位到底是什么意思?

答:从技术上讲,计算机的位数有多种含义,它既可以代表CPU指令的长度,也可以代表CPU一次从存储器读取数据的大小。实际上,位数是计算机能够处理的数值长度。

 

问题2:那这和int、double的大小有什么关系?

答:如果一台计算机能处理32位的数值,就会把基本数据类型(例如int)的大小设为32位。

简明数据类型指南