32 位与 64 位系统 - 内存限制是位还是字节? [复制]
Posted
技术标签:
【中文标题】32 位与 64 位系统 - 内存限制是位还是字节? [复制]【英文标题】:32 bit vs 64 bit systems - is the memory limit in bits or bytes? [duplicate] 【发布时间】:2018-12-14 21:58:23 【问题描述】:我正在阅读 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,024 x 1,024) = 4,096 MB = 4GB
64 位不同:
2^64 = 18,446,744,073,709,551,616 18,446,744,073,709,551,616 / (1,024 x 1,024) = 16EB(艾字节)
他们声明程序是 32 位还是 64 位会改变它可以使用的内存限制。
我不明白的是,位如何变成字节?如果你计算出 2 位的 32 次方,那么结果肯定是 4,294,967,296 bits 而不是 bytes?如果是这样,那么 32 位系统的内存限制将是 4 GigaBits 而不是 4 GigaBytes?
有人能解释一下这是怎么回事吗?也许我错过了什么?
【问题讨论】:
现在寻找副本;我想我今天早些时候看到了一个。是的,在我的浏览器历史记录中找到它:) 你能提供一个链接到副本吗?我确实在网站上搜索了几个问题,但找不到类似的东西。 它位于页面顶部,因为我将问题作为重复项关闭了。我发布的答案也是一个完整的答案,因此即使我打算关闭它,我还是决定不将其仅作为评论。 【参考方案1】:每个可单独寻址的内存位置都是一个字节。内存不可位寻址,只能以字节块或更大的形式进行。这就是为什么在位图中设置单个位需要对包含的字节或字进行读取-修改-写入。
【讨论】:
以上是关于32 位与 64 位系统 - 内存限制是位还是字节? [复制]的主要内容,如果未能解决你的问题,请参考以下文章