跳转到内容

计算机编程/类型

来自维基教科书,开放的书籍,开放的世界


计算机编程类型 确定了给定编程环境中值类型以及使用方式。在大多数情况下,编程语言定义了一组基本数据类型,例如用于数字、字符或字符串。在高级语言中,通常可以从现有数据类型定义新的数据类型,例如表示邮政地址(由街道和城市字符串以及邮政编码整数组成)。当在不同的程序和计算机系统之间通信数据时,重要的是使用双方都能识别的类型,或者有在它们之间转换的方法。

类型定义

[编辑 | 编辑源代码]

数据类型的完整定义包括最多三件事

物理表示
数据是如何存储的
操作
你可以用数据类型做什么(含义);你不能做什么,例如除以零或字符串操作;以及如果你“溢出”缓冲区执行操作,导致结果“超出”分配的空间时会发生什么
自动函数
哪些活动,在程序控制之外,可以改变数据(硬件、用户、系统时钟)

基本类型

[编辑 | 编辑源代码]

在一些编程语言中可以看到一些基本数据类型

整数
在某些语言中是无限的,在大多数语言中限制为 8 位、16 位、32 位、48 位、64 位大小 (CC++C#w:DDSJavaw:RPG)。在某些语言中 (Adaw:FORTHPL/I),大小可以自由定义。
比率
例如 2/3,只有少数语言有这些。
浮点数
浮点数,大多数语言提供单精度和双精度 (CC++C#DDSJavaw:RPG)。在某些语言中 (AdaPL/I),精度可以自由定义。
十进制
十进制(人类)定点数,通常用于货币值。只有少数语言 (AdaPL/Iw:SQLCOBOLw:RPGDDS) 提供定点数。精度通常可以自由定义。
十六进制
十六进制,在 IBM 系统上可用。数字为零到 F。大多数现代语言不需要单独的十六进制类型,它们使用整数和专门的 I/O 例程。
压缩十进制
两个数字可以容纳在一个字符相同的空间内。查看 w:ASCIIw:EBCDIC 或类似概念系统的字符集定义。请注意,字母和特殊字符由两个十六进制半字节表示,因此使用压缩数据,两个数字可以容纳在一个字母相同的空间内。通常,一个半字节保留用于数字符号(加号或减号)。
复数
复数值通常由两个浮点数组成。只有少数语言 (C99Fortran) 有这些。在面向对象的语言中,通常由库实现 (C++Ada)
字符
一个字符,通常为 8、16 或 32 位大小。一些字符集,如 UTF-8,是用于可变长度。

复合类型

[编辑 | 编辑源代码]
记录
各种基本类型的组合。
变体
类型在运行时确定。
对象
在面向对象的语言中。
数组
参见文章 数组
字符串
一系列字符。通常实现为字符数组。

类型属性

[编辑 | 编辑源代码]
空值支持
除了数据空白或零之外,我们还可以有空值,这意味着我们还不知道那里应该是什么。
DBCS 双字节字符集
一些国家和文化的“字母表”(如汉语、日语、韩语、俄语(西里尔字母))可以使用称为表意的图形字符来执行类似于西方国家语言中 A 到 Z 字母在构建含义方面的作用,除了每个表意字比每个 A 到 Z 字母都包含更多含义。数据类型可用于存储这些图形字符集,这些字符集包含比传统西方字符集中 256 种组合所能表示的更多符号,因此存在双字节字符集 (DBCS) 来解释每种组合。
一些特殊字体使用类似的系统。
一些条形码使用类似的概念。
日期时间和持续时间
这些是用于支持日期数学的特殊数据类型,例如计算两个日期之间的天数。
标志或指示器
它们包含真/假或是/否之类的值。它们通常用于识别键盘功能的使用(哪些特殊键被按下);打印机状态(准备打印新页面);文件访问(我们获得了我们正在查找的记录,我们现在位于文件结尾)。这些特殊条件意味着需要采取特殊行动。
可变长度
数据的宽度由内容控制。

语言特性

[编辑 | 编辑源代码]
华夏公益教科书