资料类型


资料类型 (正體)

程式设计型别系统中,数据类型是用来约束数据的解释。在编程语言中,常见的数据类型包括原始类型(如:整数、浮点数或字符)、多元组、记录单元、代数数据类型、抽象数据类型、参考型别、类别以及函式型别。数据类型描述了数值的表示法、解释和结构,并以算法操作,或是物件在内存中的储存区,或者其它储存装置。

型别

目录

机器中的数据类型

所有在电脑中,基于数位电子学的底层资料,都是以位元(0 或 1)表示。其中资料的最小的寻址单位,称为字节(通常是八位元,以八个位元为一组)。机器码指令处理的单位,称作字长(至 2007 年止,一般为 32 或 64 位元)大部分对字长的指令解译,主要以二进制为主,如一个 32 位元的字长,可以表示从 0 至 232 − 1 的无符号整数值,或者表示从 − 231231 − 1 的有符号整数值。由于有了二的补数,机器语言和机器大多不需要区分无符号和有符号数据类型。存在着特殊的算术指令,对字长中的位元使用不同的解释,以此作为浮点数

原始数据型别

主条目:原始类型

编程语言提供若干原始数据型别,以作为程式以及专用化复合型别的建立基础。典型的原始数据类型包含各种整数、浮点数以及字串型别。尽管这些建立基础:阵列、记录单元以及参考所联系的资料,可能未包括在基本型别,但仍可将其视为若干原始值的聚集。

复合型别

主条目:复合型别

这部分可包括以下内容(最终仍取决于编程语言):

  • RECORD
一组变量型别,例子:数据库表格中的一行
  • TABLE
数据库中的索引字段
  • NESTED TABLE
任意的单一复合型别的一维阵列
  • VARRAY
同一型别变量、且固定大小的收集处

数值范围

每一个数据类型都有一个数值上的最大和最小值,称作数值范围。了解数值的范围是很重要的,尤其是当使用较小的型别时,你就只能储存范围之内的数值。试图储存一个超出其范围的数值,可能会导致编译或执行错误,或者不正确的计算结果(因为被截断)。

一个变量的范围,是基于用以保存数值的字节数目,而且整数数据类型通常[1]能够储存 2n 数值(此处的 n 是指位元)。对于其它的数据类型(例如,浮点数),其数值范围更为复杂,且几乎取决于所使用的储存方法。还有一些不用完全部的位元,例如,布林只需一个位元,且表示一个二进制值(虽然在实践中,通常会用完剩余的 7 个位元)。某些编程语言[2]也允许反向决定,程式设计者定义解决问题所需的范围和精度,然后由编译器自动选择合适的整数或浮点数。

下表列出常见的数据类型,及其数值范围:[3]

数据类型 大小 范围
整数型别
Boolean 1 位元(虽然一般储存为 1 字节) 0 至 1
Byte 8 位元 0 至 255
Word 2 字节 0 至 65535
Double Word 4 字节 0 至 4,294,967,295
Integer 4 字节 –2,147,483,648 至 2,147,483,647
Double Integer 8 字节 –9,223,372,036,854,775,808 至 9,223,372,036,854,775,807
浮点数型别
Real 4 字节 1E-37 至 1E+37 (6 个小数位数)
Double Float 8 字节 1E-307 至 1E+308 (15 个小数位数)

数据结构

主条目:数据结构

抽象型别

主条目:抽象型别

参阅

注释

  1. ^ 有一个情况将一个或多个位元保留作其它用途,例如:奇偶校验。
  2. ^ AdaPascal
  3. ^ 注意,在平台和语言之间,数据类型的大小可能有所变化。表中列出的数值,是目前所使用且最常见的大小。

参考资料

  • Luca Cardelli, Peter Wegner. On Understanding Types, Data Abstraction, and Polymorphism, [1] from Computing Surveys, (December, 1985)






stock | retire | vm
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History