数据类型
来源:互联网 发布: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。
其余正数类型的取值范围以此类推。
浮点型
字符型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 数据类型
- 百度向网友开放免费下载百度搜索代码
- 在Ubuntu上下载、编译和安装Android最新源代码
- ICO图标在线制作 -- 为你的网站/软件制作图标(ICO)
- 自相似
- 纯Java文档阅读器
- 数据类型
- 自己最近写的一组日志处理类(支持高并发处理)
- 为什么人往往只能看到自己愿意相信的真相
- NYOJ 236 心急的C小加
- [wp7软件]wp7~~时间日程 软件大全! 集合贴~~~
- 约瑟夫问题
- Android去哪儿客服端(8)
- assertions 使用问答
- spring mvc 中使用spring的validator