什么是数据类型?

3
我理解数据类型的直觉含义,但我需要正式的定义。我不知道它是一个集合还是'int' 'float'等名称。维基百科上的正式定义很令人困惑。
在计算机编程中,数据类型是一种分类,用于识别各种数据类型(例如浮点数、整数或布尔值),确定该类型的可能值;可以对该类型的值执行的操作;数据的含义以及该类型的值的存储方式。有谁能帮助我解决这个问题?

1
你对“类型”这个词的理解是什么?无论是在编程上下文中还是其他方面。 - BoltClock
1
是的,使用定义中的单词来定义一个术语并不特别有用:“在计算机编程中,数据类型是一种分类,用于标识各种数据类型,例如浮点数、整数或布尔值,它决定了该类型可能的值…” - Cody Gray
1
@BoltClock 中的一种类型是某物的“品种”。 - progammer
2个回答

7

是的。这意味着数据类型包含三个部分:

  1. 各种可能的值。例如,一个8位带符号整数可能具有-127..128。将其视为一组值V。

  2. 操作:因此,一个8位带符号整数可能具有 + - * (乘法)和 / (除法)。完整的定义将其定义为从V到V的函数,或者对于除法,可能为从V到float的函数。

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

如果你喜欢面向对象编程,你可能会注意到这非常像类的定义,类的定义由每个对象使用的存储和类的方法定义。为某些任意事物提供这些部分,但不包括继承规则,就会得到所谓的抽象数据类型

更新

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


@ Charlie 谢谢你的回答 :) 那么我可以这样说。单词“数据类型”表示一个集合 **{{数据值的范围},{可对数据执行的函数},如何存储数据}**。 - progammer
1
你忘记了一个点。4. 对这个内部表示的解释。this 指的是第三点)。我刚刚在 Datatypes 的一篇文章中看到了这个。 - progammer

0

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

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

如果我漏掉了什么或需要完善,请随时提问,因为这是相当开放的。


@MahdeTo 感谢您的回答 :) 所以您基本上想说数据类型是一种语言中表示特定数据的规则集合吗?请查看我在Charlie的帖子上的评论,并回复它 :) - progammer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接