【发布时间】:2020-10-02 21:44:56
【问题描述】:
我读了一本名为assembly64 的书,可以找到here,现在它说 - 一个字节(8 位)可以用来表示 256 个不同的数字,一个字(16 位) 可用于表示 65,536 个不同的值,而一个双字(32 位)可用于表示 4,294,967,296 个不同的数字。因此,如果您想存储 100,000 的值,则需要一个双字。
我不明白代表x不同的值是什么意思?我知道一个字符是 1 字节,而 256 是 ASCII 表,但我不明白下面这行 - 一个单词(16 位)可用于表示 65,536 个不同的值 ,这 65,536 个值是什么意思?
【问题讨论】:
-
简单示例,假设您需要将十进制数 7 存储为二进制。二进制数字 7 是 111 ,每个 1 代表一个位,因此 3 位。每个位都是 1,这意味着这是您可以用 3 位表示的最大值。如果你用二进制数从 0 到 7:000、001、010、011.... 最终得到 111。你将计算 8 个不同的值(000、001、010、011、100、101、110、111)。这意味着您可以在 3 位上表示 8 个不同的值。 2^3=8
标签: integer x86-64 data-representation