技嘉v / s Gibibyte&千兆v / s Gibibit

时间:2015-06-26 19:08:10

标签: java operating-system byte 32-bit memory-address

请注意:我知道这些差异,所以这个问题不是要知道它们之间的区别,而是要了解其他内容。

我从可靠的信息来源汇总了我的理解和知识(对于那些不知道的人)。

  1. 所有这些都是数字信息的字节倍数的单位。
  2. 千兆字节和千兆字节用于十进制表示法,分别代表字节和位,功率为10。

    • Gigabyte = 10 ^ 9字节(GB)
    • 千兆位= 10 ^ 9位(Gb或Gbit)
  3. Gibibyte和Gibibit用于二进制表示法,分别用2的幂表示字节和位。

    • Gibibyte = 2 ^ 30字节(GiB)
    • Gibibit = 2 ^ 30字节(Gibit)
  4. 为了符号,字节始终表示为B,位始终表示为b。

  5. 据我所知,上述信息属实。

    以下是可在许多地方看到的引用,包括Wiki 32-bitStackoverflow 32 bit等。如下所示,32位内存地址可以访问4 GiB(表示4 gibibyte而不是4个gibibit 字节可寻址内存。

      

    因此,具有32位内存地址的处理器可以直接访问4   字节可寻址存储器的GiB。

    问题:
    我真的很困惑(事实上已经疯了)2 ^ 32 内存地址如何可以访问4 gibi byte 的可寻址内存?不应该是4 gibibit或.5 Gibibyte?
    1个字节有8位,所以如果我们用字节来讨论内存那么不是2 ^ 32位意味着.5 gibibyte或4 Gibibit?

    我的意思是2 ^ 32位如何表示为4 GiB或4 gibibyte?它不能是一些约定,因为字节和位不能像这样播放。所以,有一个正当的理由。
    如果有2 ^ 32个内存地址并且每个存储1个字节则意味着我有2 ^ 32 * 2 ^ 3 = 2 ^ 35位内存。那么它不再是2 ^ 32但是2 ^ 35。否?

    P.S。:我不是CS毕业生所以请原谅我。

1 个答案:

答案 0 :(得分:1)

2 ^ 32 = 4294967296 - 所以在32位架构上,你可以在内存中达到40亿个地址。每个地址都存储一个字节(8位)。

所以你的"最大记忆"确实是2 ^ 32字节或4 x 2 ^ 30字节或4 GiB。