字位大小以位为单位转换混淆

时间:2013-04-02 15:22:59

标签: byte bit virtual-address-space word-size

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

每台计算机都有一个字大小。字大小是虚拟地址空间的最大大小。因此,如果我们说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^322^10的连续划分会产生2^2 GB4 GB

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

由于

1 个答案:

答案 0 :(得分:2)

我脑子里的论点是这样的:我们有32位可用,每个位最多可以是1.因此,我们可以容纳的最大数字是所有32位(0位到31位,即)充满了1s。所以诀窍是找到十进制形式的最大数字,通过从二进制转换为十进制,我们得到:

1111111111111111111111111111111 (binary) = 4294967295 (decimal)

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

4GB = 4294967296 bytes

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

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

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

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

我在excel中做了所有这些事情并且看到它帮助了我很多。