计算机编程/类型
外观
计算机编程类型决定了给定编程环境中值的种类以及如何使用它们。在大多数情况下,编程语言定义了一组基本数据类型,例如用于数字、字符或字符串。在高级语言中,通常可以从现有的数据类型定义新的数据类型,例如,表示邮政地址(包含街道和城市的字符串以及邮政编码的整数)。在不同程序和计算机系统之间通信数据时,重要的是使用双方都能识别的类型,或者具有在它们之间进行翻译的手段。
数据类型的完整定义最多包含三件事
- 物理表示
- 数据是如何存储的
- 操作
- 你可以对数据类型做什么(含义);你不能做什么,比如除以零或字符串操作;以及如果你“溢出”缓冲区以执行超出分配空间的动作会发生什么
- 自动函数
- 在程序控制之外,哪些活动可以更改数据(硬件、用户、系统时钟)
在某些编程语言中可以看到一些基本数据类型
- 整数
- 在某些语言中是无限的,在大多数语言中限制为 8 位、16 位、32 位、48 位、64 位大小 (C、C++、C#、w:DDS、Java、w:RPG)。在某些语言中 (Ada、w:FORTH、PL/I) 可以自由定义大小。
- 比率
- 例如 2/3,只有少数语言有这些。
- 浮点数
- 浮点数,大多数语言提供单精度和双精度 (C、C++、C#、DDS、Java、w:RPG)。在某些语言中 (Ada、PL/I) 可以自由定义精度。
- 十进制
- 十进制(人类)定点,常用于货币值。只有少数语言 (Ada、PL/I、w:SQL、COBOL、w:RPG、DDS) 提供定点。精度通常可以自由定义。
- 十六进制
- 在 IBM 系统上可用。数字为零到 F。大多数现代语言不需要单独的十六进制类型,它们使用整数和专门的 I/O 例程。
- 压缩十进制
- 两个数字可以放入与一个字符相同空间。查看 w:ASCII、w:EBCDIC 或类似概念系统的字符集定义。请注意,字母和特殊字符由两个十六进制半字节表示,因此使用压缩数据,两个数字可以放入与一个字母相同空间。通常,一个半字节保留用于数字符号(正号或负号)。
- 复数
- 复数值通常由两个浮点数值组成。只有少数语言 (C99、Fortran) 有这些。在面向对象的语言中,通常由库实现 (C++、Ada)。
- 字符
- 一个字符,通常为 8 位、16 位或 32 位大小。一些字符集,如 UTF-8 是可变长度的。
- 记录
- 基本类型的各种组合。
- 变体
- 类型是在运行时确定的。
- 对象
- 在面向对象的语言中。
- 数组
- 请参见文章 数组。
- 字符串
- 一系列字符。通常实现为字符数组。
- 空支持
- 除了数据空白或零之外,我们还可以拥有空值,这意味着我们还不知道那里应该是什么。
- DBCS 双字节字符集
- 一些国家和文化“字母”(如中文、日语、韩语、俄语(西里尔字母))可以使用称为表意的图形字符来执行类似于西方国家语言中 A 到 Z 字母在构建意义方面的作用,只是每个表意字符比每个 A 到 Z 字母都承载更多意义。数据类型可用于存储这些图形字符集,这些字符集包含的符号多于传统西方字符集中 256 种组合所能表示的,因此存在双字节字符集 (DBCS) 来解释所有组合。
- 一些特殊字体使用类似的系统。
- 一些条形码使用类似的概念。
- 日期时间和持续时间
- 这些是用于支持日期数学的特殊数据类型,例如计算两个日期之间的天数。
- 标志或指示器
- 它们包含值,如真/假或是/否。它们通常用于识别键盘功能的使用(哪些特殊键被按下);打印机状态(准备好了新页面);文件访问(我们获得了我们正在寻找的记录,我们现在位于文件末尾)。这些特殊条件意味着需要特殊操作。
- 可变长度
- 数据的宽度由内容控制。
- Ada 编程/类型系统
- C 编程/类型
- C++ 变量
- JavaScript/变量和类型
- Haskell/类型基础 - Haskell 语言通常被编程语言研究人员用作开发新的、高级类型系统的平台。这份维基教科书可以让你了解普通程序员在不久的将来可能会遇到什么样的类型。(注意:另请参见 Haskell维基教科书中的高级部分)