资料类型
此条目已列出参考文献,但因为没有文内引注而使来源仍然不明。 (2019年8月24日)请加上合适的文内引注来改善这篇条目。
在程式设计的型别系统中,数据类型(英语:Data type),又称资料型态、资料型别,是用来约束数据的解释。在程式语言中,常见的数据类型包括原始类型(如:整数、浮点数或字元)、多元组、记录单元、代数资料类型、抽象数据类型、参考型别、类以及函式型别。资料类型描述了数值的表示法、解释和结构,并以演算法操作,或是物件在记忆体中的储存区,或者其它储存装置。
机器中的资料类型[编辑]
所有在电脑中,基于数位电子学的底层资料,都是以位元(0 或 1)表示。其中资料的最小的定址单位,称为位元组(通常是八位元,以八个位元为一组)。机器码指令处理的单位,称作字长(至 2007 年止,一般为 32 或 64 位元)大部分对字长的指令解译,主要以二进制为主,如一个 32 位元的字长,可以表示从 0 至
2
32
−
1
{\displaystyle 2^{32}-1}
的无符号整数值,或者表示从
−
2
31
{\displaystyle -2^{31}}
至
2
31
−
1
{\displaystyle 2^{31}-1}
的有符号整数值。由于有了二的补数,机器语言和机器大多不需要区分无符号和有符号资料类型。存在著特殊的算术指令,对字长中的位元使用不同的解释,以此作为浮点数。
原始资料类型[编辑]
主条目:原始类型
程式语言提供若干原始数据型别,以作为程式以及专用化复合类型的建立基础。典型的原始资料类型包含各种整数、浮点数以及字串型别。尽管这些建立基础:阵列、记录单元以及参考所联系的资料,可能未包括在基本型别,但仍可将其视为若干原始值的聚集。
复合型别[编辑]
主条目:复合类型
这部分可包括以下内容(最终仍取决于程式语言):
RECORD
一组变数型别,例子:资料库表格中的一行
TABLE
资料库中的索引栏位
NESTED TABLE
任意的单一复合型别的一维阵列
VARRAY
同一型别变数、且固定大小的收集处
数值范围[编辑]
每一个资料类型都有一个数值上的最大和最小值,称作数值范围。了解数值的范围是很重要的,尤其是当使用较小的型别时,你就只能储存范围之内的数值。试图储存一个超出其范围的数值,可能会导致编译或执行错误,或者不正确的计算结果(因为被截断)。
一个变数的范围,是基于用以保存数值的位元组数目,而且整数资料类型通常[注 1]能够储存
2
n
{\displaystyle 2^{n}}
数值(此处的
n
{\displaystyle n}
是指位元)。对于其它的资料类型(例如,浮点数),其数值范围更为复杂,且几乎取决于所使用的储存方法。还有一些不用完全部的位元,例如,布林只需一个位元,且表示一个二进制值(虽然在实践中,通常会用完剩馀的 7 个位元)。某些程式语言[注 2]也允许反向决定,程式设计者定义解决问题所需的范围和精度,然后由编译器自动选择合适的整数或浮点数。
下表列出常见的资料类型,及其数值范围:[注 3]
资料类型
大小
范围
整数型别
布尔型(Boolean)
1 bit
0 至 1
字节(Byte)
8 bit
0 至 255
字(Word)
2 字节
0 至 65535
双字(Double Word)
4 字节,32bit
0 至 4,294,967,295
整数(Integer)
4 字节,32bit
–2,147,483,648 至 2,147,483,647
长整数(Long Integer)
8 字节,64bit
–9,223,372,036,854,775,808 至 9,223,372,036,854,775,807
浮点数型别
浮点数(Float)
4 位元组
1E-37 至 1E+37 (6 个小数位数)
双精度浮点数(Double Float)
8 位元组
1E-307 至 1E+308 (15 个小数位数)
资料结构[编辑]
主条目:资料结构
抽象类型[编辑]
主条目:抽象类型
注释[编辑]
^ 有一个情况将一个或多个位元保留作其它用途,例如:奇偶校验。
^ 例如:Ada、Pascal
^ 注意,在平台和语言之间,资料类型的大小可能有所变化。表中列出的数值,是目前所使用且最常见的大小。
参考文献[编辑]
Luca Cardelli, Peter Wegner. On Understanding Types, Data Abstraction, and Polymorphism, [1] (页面存档备份,存于互联网档案馆) from Computing Surveys (December, 1985).
参见[编辑]
计算机科学主题
类型理论,关于类型的数学模型。
型别系统,关于在程式语言型别中的选择差异。
查论编数据类型无解释的
位元
字节
三进制位
三进制字节
字
数值
整数
符号性
有符号数
无符号数
定点数
浮点数
双精度
扩展精度(英语:Extended precision)
半精度
迷你浮点数
八精度
四精度
单精度
有理数
复数
任意精度算术
区间(英语:interval arithmetic)
文本
字符
字符串
指针
记忆体位址
物理地址
虚拟地址
参照
组合
代数数据类型
广义(英语:generalized algebraic data type)
数组
关联数组
类
串列
对象
元对象
可选类型
积类型(英语:Product type)
记录
集合
元组
联合体
标签
其他
布尔型
底层类别(英语:Bottom type)
容器
枚举类型
异常
头等函数
不透明数据类型(英语:Opaque data type)
递归数据类型
信号标
字串流
顶类型(英语:Top type)
类型类
类型系统
单位类型(英语:Unit type)
Void
不定型别
相关议题
抽象资料型别
数据结构
介面
种类(英语:Kind (type theory))
元类
对象类型(英语:Boxing (computer programming))
原始型别与复合型别
协议
子类型
C++模板
型别构造器
参数多态
查论编数据
数据增强
数据分析
Data Archaeology(英语:Data archaeology)
大数据
数据清洗
资料收集(英语:Data collection)
数据集
数据压缩
数据转换
数据损坏
Curation(英语:Data curation)
Degradation(英语:Data degradation)
Editing(英语:Data editing)
ETL
数据抽取(英语:Data extraction)
数据变换(英语:Data transformation)
数据装载(英语:Data loading)
Farming(英语:Data farming)
Format management(英语:Data format management)
Fusion(英语:Data fusion)
数据集成
数据完整性
数据注释(英语:Data annotation)
Library(英语:Data library)
数据损失(英语:Data loss)
数据管理
数据脱敏
数据迁移
元数据
数据挖掘
数据模型
开放数据
Datapoint(英语:Data point)
数据预处理(英语:Data pre-processing)
Preservation(英语:Data preservation)
信息隐私(英语:information privacy)
数据出版(英语:Data publishing)
数据质量(英语:Data quality)
数据恢复
数据精简(英语:Data reduction)
数据保持(英语:Data retention)
数据科学
Scraping(英语:Data scraping)
Scrubbing(英语:Data scrubbing)
数据安全
数据泄露
数据共享(英语:Data sharing)
Stewardship(英语:Data steward)
数据储存(英语:Data storage)
储存装置
数据结构
数据同步
数据确认
数据验证(英语:Data verification)
数据仓库
Wrangling/munging(英语:Data wrangling)
模板
数据模型
开放数据
数据储存
数据类型
数据结构
数据仓库
规范控制数据库:各地
德国
以色列
美国
拉脱维亚
捷克