究竟什么是数据类型?

时间:2012-03-11 07:08:10

标签: language-agnostic types

我理解数据类型是什么(直观地)。但我需要正式的定义。我不明白它是 set 还是名字'int''flora'等。维基百科上的正式定义令人困惑。

  

在计算机编程中,数据类型是标识各种类型数据之一的分类,例如浮点,整数或布尔值,用于确定该类型的可能值;可以对该类型的值进行的操作;数据的含义;以及可以存储该类型的值的方式。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:6)

是的。这就是说数据类型有三个部分:

  1. 各种可能的值。因此,例如,8位有符号整数可能具有-127..128。这是一组值V。

  2. 操作:因此8位有符号整数可能包含+-*(乘法)和/(除)。完整定义将那些定义为从V到V的函数,或者可以作为函数从V到float用于除法。

  3. 它存储的方式 - 当我说“八位有符号整数”时,我有点放弃它。另一个细节是我通过显示值范围的方式假设一个特定的表示。

  4. 如果您进入面向对象编程,您可能会注意到这非常类似于类的定义,类是由每个对象使用的存储定义的,与类的方法相关。为某些任意事物而不是继承规则提供这些部分,可以为您提供所谓的抽象数据类型

    <强>更新

    @Appy,手续上有差异的余地。我有点微妙,因为它已经很晚了,我突然不确定我是否假设一个补码或两个补码 - 当然它是两个补码。所以解释包含在我的描述中。但是,抽象地说,你会说它是一个代数结构T =(V,O),其中V是一组值,O是从V到一些任意类型的一组函数 - 记住'=='例如将是函数eq:V×V→{0,1}因此您不能指望每个操作都进入V。

答案 1 :(得分:0)

我可以将其定义为特定类型信息的分类。人类很容易区分不同类型的数据。我们通常可以一眼就看出数字是百分比,时间还是金额。我们通过特殊符号%,:和$。

来完成此操作

基本上这是我确信你会生气的概念。但是对于计算机而言,数据类型是定义的,并且具有各种相关属性,如大小,如定义关键字(有时),可以采用的值(例如数字或字符)以及可以对其执行的操作,例如为数字添加减法并附加字符串或比较字符等。这些不同于语言,甚至从环境到环境。 (16 - 32位整数/ 32 - 64次环境/等)。

如果我有任何遗漏或需要改进,请询问,因为这是相当开放的。