【问题标题】:Why are 32 bits equal to 4 gigabytes but not 4 gigabits?为什么 32 位等于 4 GB 而不是 4 GB?
【发布时间】:2013-02-27 01:21:09
【问题描述】:

假设我们有一个 32 位的地址,所以每个位可以是 1 或 0。

所以组合的总数等于 2^32。

所以我们可以表示 2^32 个地址(没有单位)。

但是为什么人们说 32 位地址可以表示 2^32 字节地址(为什么是“字节”地址)?

我已经看过Why does a 32-bit OS support 4 GB of RAM?

不会变成 2^32 * 8 位地址吗?为什么人们可以简单地在末尾添加“字节”?

【问题讨论】:

  • 您有 2^32 个可寻址单元。现代处理器是字节可寻址的,所以你得到 2^32 字节。有些较旧的处理器的可寻址单元不是字节。例如,开发 UNIX 的原始机器是字可寻址的,因此 36 位整数可以访问 2^36 个字,而不是 2^36 个字节。

标签: windows memory operating-system 32-bit


【解决方案1】:

每个地址指向一个字节。在内存中,寻址的不是单个位,而是字节。

因此,32 位将为您提供 2^32 个项目的可寻址空间,每个项目都是一个完整字节。是的,它可以让每个地址指向一个特定的位,但是不,他们让每个地址指向一个字节。

【讨论】:

    【解决方案2】:

    因为内存是字节可寻址的,而不是位可寻址的。

    地址 0x100 指的是单个字节,地址 0x101 指的是后面的字节。

    【讨论】:

    • 好的,我想我现在明白了,2^32 只是代表地址的数量,但在操作系统中,基本的 UNIT 是字节。那么如果我们有 2^32 个地址,那么我们可以表示 2^32 个字节的地址吗?
    • 说你有 4 位地址。每个地址将是 0 到 15(含)之间的 16 个 (2^4) 值之一。这些数字(地址)中的每一个都将引用内存中的 16 个字节(不是)之一。所以在这种情况下,你的内存大小将是 16 字节。如果您有 32 位,则最多可以有 2^32 字节(或 4GB)的可寻址内存。
    猜你喜欢
    • 2010-11-10
    • 2021-02-12
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 2012-01-28
    • 2017-01-27
    相关资源
    最近更新 更多