32 位与 64 位系统 - 内存限制是以位还是字节为单位?



我正在阅读32位和64位系统之间的区别,并在此过程中遇到了这个博客:https://www.zdnet.com/article/clearing-up-the-3264-bit-memory-limit-confusion/

现在我很困惑,因为在此博客中,他们提供了如下注释:

注意:想知道我们如何达到4GB的限制吗?以下是 32 位系统的数学计算:

2^32 = 4,294,967,296 字节 4,294,967,296/(1,024x 1,024( = 4,096 MB = 4GB

64 位则不同:

2^64 = 18,446,744,073,709,551,61618,446,744,073,709,551,616/(1,024 x 1,024( = 16EB(艾字节(

他们指出,程序是 32 位还是 64 位都会更改它可以使用的内存限制。

我不明白的是,位是如何变成字节的? 如果你计算出 2 位的 32 次方,结果肯定是 4,294,967,296而不是字节吗? 如果是这样,那么 32 位系统上的内存限制将是 4 千兆而不是 4 千兆字节

有人可以解释一下这是如何工作的吗? 也许我错过了什么?

每个可单独寻址的内存位置都是一个字节。 内存不可位寻址,只能以字节块或更大的字节块为单位。 这就是为什么在位图中设置单个位需要对包含的字节或字进行读-修改-写的原因。

相关内容

最新更新