2

我有一个非常基本的问题,这让我有些困惑。对此进行一些复习会很棒。

每台计算机都有一个字长。字长是虚拟地址空间的最大尺寸。因此,如果我们说 a 32 bit word size,我们有一个虚拟地址空间,其范围最大为2^32 values. 在参考文献中它说2^32 bytes?为什么是以字节为单位的范围。

另外,我无法理解的是2^32可能的值如何成为可能的地址范围4GB?所以,我的困惑源于将32 bit word size变成4 byte word size,然后如何4 bytes,乘以得到2^32的困惑4GB

我试图使其合理化的一种方法如下:

2^32 bits = 2^2(bytes) x 2^10(kilobytes) x 2^10(megabytes) x 2^10(gigabytes)

2^32因此by 的连续除法2^10结果为2^2 GBor 4 GB

有人能指出 32 位字大小如何达到 4GB 页面范围吗?

谢谢

4

1 回答 1

2

我脑子里的论点是这样的:我们有 32 位可用,每个位最多可以是 1。所以我们可以容纳的最大数量是当所有 32 位(0 位到 31 位)都被填满时1s。所以诀窍是找到十进制形式的最大数,通过将二进制转换为十进制,我们得到:

1111111111111111111111111111111 (binary) = 4294967295 (decimal)

但是 4294967295 是什么?它实际上比 2^32 小一。现在还有一个重要的事情要记住:

4GB = 4294967296 bytes

但为什么它比我们的结果大 1 呢?因为我们的第一个字节是字节 0,而最后一个字节是字节 4294967295,总共 4294967296 个字节。

所以现在我们处于一个 32 位寄存器中可以存在的最小数字是 0 而 32 位寄存器中可以存在的最大数字是 4294967295 的位置。

0 (binary)  - 1111111111111111111111111111111 (binary)
0 (decimal) - 4294967295 (decimal)
0 (hex)     - 0xFFFFFFFF (hex)

所以有 4GB 的可寻址空间,因为任何超过 4GB 的地址都会有一个太大的数字,无法容纳在 32 位数字中,因此无法容纳在 32 位寄存器中。

我在 excel 中做了所有这些事情,看到它对我有很大帮助。

于 2013-12-18T21:05:20.300 回答