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 位系统 - 内存限制是位还是字节? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

关于windows XP 64位与32位

32位操作系统与64位操作系统内存比较

32位与64位之谈

三星RV411适合32位还是64位系统

32位与64位编译器的长度对比

位与字节