【问题标题】:What exactly is a datatype?究竟什么是数据类型?
【发布时间】:2012-03-11 07:08:09
【问题描述】:

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

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

谁能帮我解决这个问题?

【问题讨论】:

  • 你对“类型”这个词有什么理解?是否在编程上下文中无关紧要。
  • 是的,使用定义中的词的定义并不是特别有用:“在计算机编程中,数据类型是一种分类,用于识别各种数据的b>类型,例如浮点数、整数或布尔值,确定该类型的可能值..."
  • @BoltClock 某物的类型是某物的“品种”。

标签: language-agnostic types


【解决方案1】:

是的。也就是说,一个数据类型包含三个部分:

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

  2. 操作:所以一个 8 位有符号整数可能有 +-*(乘)和/(除)。完整的定义会将它们定义为从 V 到 V 的函数,或者可能是从 V 到浮点的函数以进行除法。

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

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

更新

@Appy,形式上存在一些差异。我有点狡猾,因为已经晚了,我突然不确定我是假设一个补码还是二元补码——当然是二元补码。所以解释包含在我的描述中。不过,抽象地说,你会说它是代数结构 T=(V,O) 其中 V 是一组值,O 是一组从 V 到某个任意类型的函数——记住 '==' 例如将是一个函数 eq:V × V → {0,1} 所以你不能期望每个操作都进入 V。

【讨论】:

  • @Charlie 谢谢你的回答:) 所以我可以这样说。 'datatype'这个词代表一个集合 { {数据的值范围} , {可以对数据执行的函数} , how_to_store_data }
  • 你忘了一点。 4。对此内部表示的解释。this 指的是第 3 点)。我在一分钟前在一篇关于数据类型的文章中遇到了这个问题。
【解决方案2】:

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

基本上,我相信你会接受这个概念。然而,对于计算机来说,定义了数据类型并具有各种相关属性,例如大小、定义键(有时)、它可以采用的值(例如数字或字符)以及可以对其进行的操作,例如数字的加减法并附加到字符串或比较字符等。这些因语言而异,甚至因环境而异。 (16 - 32 位整数/32 - 64 环境/等)。

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

【讨论】:

  • @MahdeTo 感谢您的回答 :) 那么您基本上想说的是数据类型是表示特定数据的语言中的一组规则?请查看我对查理斯帖子的评论并回复它:)
猜你喜欢
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 2012-08-27
  • 2010-11-12
  • 2011-03-18
  • 2011-01-22
相关资源
最近更新 更多