数据类型

来源:互联网 发布:linux chkconfig 安装 编辑:程序博客网 时间:2024/04/29 22:56

再讲解数据类型之前,我们依然要了解一些基本的知识。

前面的文章我们已经了解了有关数据存储的原理,知道数据在内存和磁盘中要占用空间。内存空间和磁盘空间的计量单位为字节,当然还有其它的单位。从大到小依次为:
TB Terabyte 万亿字节
GB Gigabyte 千兆字节
MB Mebibyte 兆字节
KB Kilobyte 千字节
B Byte 字节
它们之间的换算关系是:
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024B
1B = 8b 这里的b指bit,代表位,每一位就是在物理上就是一个门电路,开和关分别用0和1表示。


数据类型

首先要弄清楚一个问题,为什么要区分数据类型呢?

原因是计算机的存储空间是有限的,所以人们必须思考怎么提高这些空间的利用率。

要知道,在现实中的所有数据例如数字、文字、声音等等都只是理论上存在,或者说是抽象的。例如理论上数字可以无穷大无穷小、文字可以长篇大论、声音也可以各式各样。但是数据在计算机中并非如此。数据要存储在计算机中是通过实实在在的物理电路来实现的,而电路是有限的,所以计算机存储的数据也是有限的。例如计算机不可能存储一个无限大的数字。类似的道理计算机的计算结果也只是近似值,例如圆周率在计算机只能用一个近似值表示,因为计算机无法表示一个无限小数。为了满足需要和节省空间,采取了对数据进行类型区分的办法,例如现实的整数类型也被区分为普通整型、短整型长整型是否有符号等等。

每种数据类型所占的空间不相同,所表示的范围也不相同。这样就可以根据需要使用合适的数据类型。例如short类型占2个字节,取值范围为-32768~32767。而int类型占4个字节,取值大概范围为负21亿到正21亿。那么如果要用一个变量来保存一间中学的人数那么用short就足够了。而如果要用于存储中国人的人口。那么就得用int类型的变量了。根据需要来选择合适的数据类型,从而达到节省空间的目的,这就是要区分数据类型的原因。


c语言有以下这些基本数据类型



有三个要注意的问题。

1、long long和unsigned long long类型vc 6.0暂时不支持。

2、int和long、unsigned int和unsigned long、double和long double在vc6.0中所占的字节数、取值范围和精确度都是一致的。也就是这三对数据类型都没有区别。

3、每种编译器对各种数据类型的定义并一定相同,例如在Turbo C中int类型只占两个字节。因为Turbo C是比较老的编译器,那时的计算机基本上都是16位的。除此之外各编译器对数据类型的定义基本上与此是一致的。


接下来要解释下取值范围是如何计算的。

数型

我们知道数据在计算机中都是二进制的。以float类型为例子。float类型占2个字节也就是16位二进制数,第一位作为符号位,所以可以表示的取值范围为负2^15到正2^15-1(因为包括0所以要减1)。

所以float的取值范围为-32768~32767。

unsinged float表示无符号的float类型,也就是第一位也不表示符号位,都视为正数。所以unsigned float的取值范围为0~2^16-1也就是0~65535。

其余正数类型的取值范围以此类推。


浮点型


字符型


原创粉丝点击