跳转到内容

计算机编程/类型

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


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

类型定义

[编辑 | 编辑源代码]

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

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

基本类型

[编辑 | 编辑源代码]

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

整数
在某些语言中是无限的,在大多数语言中限制为 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) 来解释所有组合。
一些特殊字体使用类似的系统。
一些条形码使用类似的概念。
日期时间和持续时间
这些是用于支持日期数学的特殊数据类型,例如计算两个日期之间的天数。
标志或指示器
它们包含值,如真/假或是/否。它们通常用于识别键盘功能的使用(哪些特殊键被按下);打印机状态(准备好了新页面);文件访问(我们获得了我们正在寻找的记录,我们现在位于文件末尾)。这些特殊条件意味着需要特殊操作。
可变长度
数据的宽度由内容控制。

语言特性

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