数据类型

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

机器中的数据类型

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

原始数据类型

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

复合类型

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

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

数值范围

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

一个变量的范围,是基于用以保存数值的字节数目,而且整数数据类型通常[注 1]能够保存 数值(此处的 是指比特)。对于其它的数据类型(例如,浮点数),其数值范围更为复杂,且几乎取决于所使用的保存方法。还有一些不用完全部的比特,例如,布尔只需一个比特,且表示一个二进制值(虽然在实践中,通常会用完剩余的 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 个小数字数)

数据结构

注释

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

参考文献

    • Luca Cardelli, Peter Wegner. On Understanding Types, Data Abstraction, and Polymorphism, 页面存档备份,存于 from Computing Surveys (December, 1985).

    参见

    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.