【问题标题】:max RAM in 32 bit machine32位机器最大内存
【发布时间】:2013-05-07 00:19:27
【问题描述】:

我知道 stackoverflow 中可能存在重复的问题。但这些问题并没有直接解决我的问题。我的理解是 32 位机器使用 32 位来存储内存地址,因此它可以拥有的最大内存是 2^32 位。但是,2^32 位 = 2^29 字节 = 2^29/10^9 = 0.5 GB。

我知道答案应该是 4 GB。但我根本无法弄清楚我的错误在哪里。帮助!

【问题讨论】:

  • 2^32 是可寻址的字节,而不是位。此外,1024b = 1KiB, 1024KiB = 1MiB, 1024MiB = 1GiB (使用十进制 K/M/G 也会稍微偏离数学,尽管命运的转折,制造商使用它来报告 [spindle] HDD 大小)。 .
  • 具有 32 位地址寄存器的 32 位机器可以寻址 2^32 字节,因为地址选择了一个字节的所有位。
  • @user2246674 感谢您的快速回复。但是如何理解 32 位和 2^32 可寻址字节之间的关系呢?我只是有点困惑。
  • 有 2^32 bytes 表示 2^32*8 bits(或 2^35 bits);但是现代计算机一般只能以字节为分辨率直接引用内存(有可以对字节执行位操作,但不能直接访问特定字节内的位)。
  • @user2246674 如果机器被称为 32 字节机器,我可以完全理解你的论点。但是,它们被称为 32 位。这仍然让我感到困惑。

标签: 64-bit 32-bit


【解决方案1】:

我相信 2^32 是指可寻址字节数,而不是内存中的总位数。您可以处理 40 亿字节(320 亿位)或 4 GB 的内存。比如

Address 0 | Address 1 |... | Address 2^32
........................................

8 bits    | 8 bits    | ...| 8 bits 

编辑: 32 位机器通常是指您可以填充到 CPU 寄存器(而不是 RAM)中的位数。因此,1 个寄存器允许 32 位,可以寻址 2^32 字节的 RAM。

编辑: 这是关于超级用户的一个很好的解释: https://superuser.com/questions/56540/32-bit-vs-64-bit-systems

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 2011-02-05
    • 2023-03-29
    • 2017-02-03
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    相关资源
    最近更新 更多