【问题标题】:On a 32bit machine, every memory location is capable of holding 1 byte of data?在 32 位机器上,每个内存位置都能够保存 1 个字节的数据?
【发布时间】:2009-09-26 17:46:11
【问题描述】:

例如 int = x; 因为 int 是 4 个字节,所以它们会占用 4 个内存位置

x X X x

【问题讨论】:

    标签: c memory


    【解决方案1】:

    这与 32 位或 64 位无关。无论如何,大多数架构都使用byte addressable 内存,所以我想答案应该是“嗯……从某种意义上说,是的。”

    【讨论】:

      【解决方案2】:

      这取决于架构。有关完整细分,请参阅words 上的维基百科页面。

      注意:对于 x86,每个地址为 1 个字节。

      【讨论】:

      • 在您链接的页面上,相关信息可以在表格“字长表”中找到。查看过去 30 年架构的“地址解析单元”列。
      【解决方案3】:

      32 位机器意味着整数是 32 位宽。

      实际上并没有定义整数是否为四个字节。一个字节不一定是8位。

      这绝对不意味着有 4 GB RAM 或 2^32 个可寻址单元。

      8086 是 16 位机器,但有 1 MB 的可寻址 RAM。 286 有 1MB + 64k - 16 字节,但能够执行分段内存映射,从而允许使用更多 RAM(我相信是 4MB)。

      Pentium II 及更高版本是 32 位处理器,但实际上支持高达 64GB RAM,但一个进程一次只能寻址 4GB。

      当前的 x64 处理器无法寻址 2^64 字节的 RAM。

      有些机器甚至不能按字节寻址。

      【讨论】:

        猜你喜欢
        • 2015-08-17
        • 2017-11-16
        • 2013-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-01
        • 2021-03-04
        • 1970-01-01
        相关资源
        最近更新 更多