首页 > 解决方案 > 字节、字和双字数字表示

问题描述

我读了一本书,assembly64可以在这里找到,现在它说 -一个字节(8 位)可以用来表示 256 个不同的数字,一个字(16 位)可以用来表示 65,536 个不同的值,并且一个双字(32 位)可用于表示 4,294,967,296 个不同的数字。因此,如果您想存储 100,000 的值,则需要一个双字。

我不知道代表 x 不同的值是什么意思?我知道一个字符是 1 个字节,而 256 是 ASCII 表,但我不明白下面这行 -一个单词(16 位)可用于表示 65,536 个不同的值,65,536 个值是什么意思?

标签: integerx86-64data-representation

解决方案


我不明白“代表 x 个不同的值”是什么意思。

如果您有一个可以存储值的数据类型01,它可以存储两个不同的值。

因此,“表示 x 个不同的值”意味着,如果从 0 开始,它可以存储最多x - 1. 也就是说,数字通常是有符号的,因此最大值较低,最小值为负数。

为了找到给定位数的最大无符号值,计算是2^n - 1如果n是位数。

在您链接的文档(直接链接)的第 36 页上,有一个表格详细说明了可以存储在每种数据类型(有符号和无符号)中的可能值。


推荐阅读