为什么不同的数据类型会为相同的数据占用更多内存?

时间:2014-08-05 23:12:30

标签: memory types language-agnostic primitive-types information-theory

例如,如果我想存储第一个,我可以使用integer type,占用 32位long type,占用 64位,但两种数据类型都会有相同数量的信息(从符号角度来看)。

1 个答案:

答案 0 :(得分:3)

变量根据类型占用空间,而不是实际包含的。 从类型取决于可能值的总和,其中当前实际值仅为1。所以定义集需要一定的空间,而不是值本身。

修改

我感到困惑:)

我们说我们有2位可以用4种方式组合:

00
01
10
11

现在这些都是2位的可能组合。 那些代表的人完全无动于衷。我们只有4种不同的状态。我们可以将它们映射到我们想要的任何东西:

00 white
01 black
10 red
11 blue

00 A
01 B
10 C
11 D

00 0
01 1
10 2
11 3

我们可以编码这4种状态的事实与该类型绑定。无论我们在该类型的变量中存储什么值,都将占用编码所有4个可能值所需的全部2位。

一个值得注意的例外是字符串。它们可以被视为图灵有限磁带的现代实现,在其上刻有字母表中的字符。值得注意的是,我们可以存储所有类型的人类知识(例如,所有书面书籍的总数可以存储在一个单独的字符串中)。