`
zhouyrt
  • 浏览: 1162045 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据类型

 
阅读更多

大多数程序设计语言都有数据类型的概念,数据类型指定义一组数据值以及在这些数据值上相关的一组操作。

我们知道计算机通过操作数据来产生结果,决定计算机程序执行认为难易程度的一个重要原因是可提供的数据类型与真实世界问题空间的匹配程度。因此,一种语言能支持多样化的类型与结构就成为关键。

 

数据类型的概念是从过去50年间发展过来的

最早的语言仅支持少量的数据结构,如Fortran 90之前通常用数组来模拟链表及二叉树。

COBOL允许程序员指定小数的精度,并通过记录提供一种结构化的数据类型,跨出了Fortran I模式的第一步。

PL/I更是将精度说明的功能扩展到整数及浮点类型,该功能从此也被引进到了Ada和Fortran。

ALGOL则开创式的引入了用户自定义类型的概念,它仅提供少数的基本类型以及少量灵活的结构定义操作符,却允许程序员为需求设计一种数据结构。显然,这是数据类型发展过程中最重要的进步。

1967年首次提出“类型”概念的Simula 67,把数据和被允许施与数据上的操作结合为一个统一体,从而成为现代“抽象数据类型”的开端及第一个“面向对象语言”。

1971年出现的Pascal也是在ALGOL之上扩充的。

 

从“用户自定义类型”这个概念往前一步,就到了“抽象数据类型”的阶段,抽象数据类型的基本思想是,类型的接口(对用户可见)与类型的表示及类型的值的操作相分离(对用户不可见)。高级程序设计语言提供的所有类型都是抽象数据类型。

 

少数语言如BLISS根本没有类型的概念,其它则是在编译时(ML、Haskel,C)或是运行时(Lisp、Scheme、JavaScript、Smalltalk等动态语言)自动维护类型信息。

 

类型起着两种主要作用

1. 利用类型信息的操作

为操作提供了隐含的上下文环境,如Java中如果a, b都是int类型,表达式a+b就会使用整数相加操作。

2. 通过类型信息捕捉错误

类型限制了语义上合法的程序里可以执行的操作集合。如类型不允许编程人员去做一个和字符串进行算术相加的操作。

 

类型的分类

不同的语言里有关类型的术语也不同,大部分语言所提供的内部类型(built-in)差不多就是大部分处理器硬件所支持的类型:整数、实数(浮点数)、布尔和字符。

布尔类型(也称逻辑类型)通常实现为一种一个字节的量,其中1表示true,0表示false。但C语言不同,它没有布尔类型,C的整数0表示false,非0都是true。

部分语言字符也实现为一个字节的量,通常采用ASCII编码,更新的语言则采用Unicode,如Java、JavaScript,这是国际化的标准。

只有为数不多的几种语言(C、Fortran)区别了不同长度的整数和实数,大多数语言把精度的问题留给了实现。也有少数语言(C、C++、C#、Modula-2)同事提供带符号和无符号的整数。还有几种语言(Fortran、C99、Common Lisp和Scheme)提供了内部的复数类型,一般实现为浮点数。

 

某些语言(Pascal、Java)还内置枚举类型,该类型由1984年图灵奖获得者Wirth首创,诞生于Pascal。这种类型有利于构造可读性更好的程序,也使编译器能扑捉一些种类的编程错误。

一个枚举类型由一组命名元素组成,Pascal中如下

type weekday = {sun, mon, tue, wed, thu, fri, sat};

 

Java中如下

public enum ColorSelect {
    red, green, yellow, blue;    
}

相关:

http://en.wikipedia.org/wiki/Data_types

http://en.wikipedia.org/wiki/Primitive_types

 

分享到:
评论

相关推荐

    sqlserver数据库类型对应Java中的数据类型

    SQL Server 数据库类型对应 Java 中的数据类型 SQL Server 是一个关系数据库管理系统,Java 是一个广泛使用的编程语言。在 Java 中,对数据库的操作需要通过 JDBC(Java Database Connectivity)来实现,而在 JDBC ...

    易语言自定义数据类型变量保存

    自定义数据类型允许用户根据需求定义自己的数据结构,比如组合多个基本数据类型,形成新的复合类型。 本案例"易语言自定义数据类型变量保存"主要关注如何保存和恢复自定义数据类型的变量。在编程中,保存数据通常是...

    Java数据类型和MySql数据类型对应一览

    Java 数据类型和 MySql 数据类型对应一览 在 Java 编程语言中,数据类型是指变量或函数可以持有的值的类型。 MySql 数据库也具有其自己的数据类型,用于存储和管理数据。在本文中,我们将对 Java 数据类型和 MySql ...

    java数据类型的转换简单数据类型之间的转换 (2). 字符串与其它数据类型的转换 (3). 其它实用数据类型转换

    一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问下面笔者就开发中的一些体会介绍给大家。 我们知道,...

    易语言内存自定义数据类型

    在易语言中,内存自定义数据类型是实现高效内存管理的重要手段,它允许程序员根据实际需求定义自己的数据结构。下面将详细阐述这个主题。 内存自定义数据类型是指在程序运行过程中,由程序员自行定义的一种数据结构...

    易语言取自定义数据类型大小

    在编程领域,特别是使用易语言(E语言)进行开发时,理解并操作数据类型的大小是非常重要的。易语言是一种中文编程语言,它具有直观的语法,旨在简化编程过程,尤其是对于初学者。本篇文章将深入探讨易语言中的...

    Oracle与.Net 数据类型映射

    了解Oracle数据库与.NET数据类型的映射关系对于开发人员来说至关重要,这直接影响到数据的正确存储、检索和处理。以下是对"Oracle与.Net 数据类型映射"这一主题的详细解释。 首先,Oracle数据库提供了一系列的数据...

    西门子TIA博图数据块中数据类型的定义.pdf

    在数据块中,可以定义多种不同的数据类型,这些数据类型包括基本数据类型、复杂数据类型和用户自定义数据类型。 基本数据类型是TIA博图中预定义的一些简单数据类型,如布尔型(BOOL)、整型(INT)、实型(REAL)等...

    sql数据类型说明

    本篇文章将详细阐述 SQL 中几种常见的数据类型及其应用特点,具体包括整型数据类型、浮点数据类型、二进制数据类型以及逻辑数据类型。 #### 整型数据类型 1. **INT(INTEGER)** - **描述**:`INT` 或 `INTEGER` ...

    IDA简单教程数据类型说明更改等

    ### IDA简单教程数据类型说明更改等内容详解 #### 一、引言 IDA是一款非常强大的逆向工程工具,广泛应用于软件安全分析、恶意软件研究等领域。对于初学者来说,掌握IDA的基本操作非常重要,特别是如何利用IDA来辅助...

    SQL2005 数据类型

    ### SQL2005 数据类型详解 SQL Server 2005作为一款强大的关系型数据库管理系统,提供了多种数据类型以适应不同的数据存储需求。本文将详细介绍SQL2005中的各种数据类型及其特点,帮助数据库开发者和管理员更好地...

    西门子数据类型转换_tool_数据类型转换_S7_源码

    西门子数据类型转换在工业自动化领域中是一个关键的议题,特别是在使用西门子S7系列PLC(可编程逻辑控制器)时。S7系列PLC支持多种数据类型,包括INT、DINT、REAL、STRING等,这些数据类型在不同场景下各有其应用。...

    JAVA数据类型思维导图

    本资源“JAVA数据类型思维导图”提供了一种直观的方式来理解和记忆Java中的数据类型,包括基本数据类型和引用数据类型。下面将对这两个主要的数据类型进行详细解释。 1. 基本数据类型(Primitive Data Types) - ...

    SQL数据库数据类型说明

    SQL 数据库数据类型说明 SQL 数据库中有多种数据类型,每种数据类型都有其特点和应用场景。了解这些数据类型是 SQL 编程的基础。 1. 整型数据类型 SQL 数据库中的整型数据类型包括 bit、int、smallint 和 tinyint...

    从数据类型 nvarchar 转换为 numeric 时出错.pdf

    知识点一:数据类型转换问题 在数据库操作中,数据类型转换是一个常见的问题。在本案例中,从数据类型nvarchar转换为numeric时出现错误。这是因为在进行数据类型转换时,数据的内容需要符合目标数据类型的要求。例如...

    Informix 用户例程与数据类型开发指南

    根据提供的文件信息,“Informix 用户例程与数据类型开发指南”这一标题以及描述明确指出了文档的主要内容将围绕IBM Informix数据库系统中的用户定义例程(User-defined Routines)及自定义数据类型展开。尽管具体内容...

    易语言启动线程传自定义数据类型参数源码

    自定义数据类型可以通过“定义数据类型”命令创建,可以包含基本数据类型(如整数、浮点数、字符串等)以及其它自定义数据类型的组合,形成复杂的数据结构。在多线程环境中,如果需要在线程间传递这样的自定义数据,...

    JAVA数据类型与Hibernate的类型映射

    在Java编程语言中,数据类型分为两种:基本数据类型(如int、char)和引用数据类型(如类、接口、数组)。而在Java持久化框架Hibernate中,这些数据类型需要与数据库中的字段类型进行映射,以便正确地存储和检索数据...

    c#数据类型课件,ppt,c#数据类型课件

    C#的数据类型主要分为两大类:基本数据类型和引用数据类型。基本数据类型包括整型、浮点型、字符型、布尔型、空类型以及枚举和指针(仅限于unsafe代码)。引用数据类型则包括类、接口、数组和委托,它们都是对象的...

Global site tag (gtag.js) - Google Analytics