请注意:我知道这些差异,所以这个问题不是要知道它们之间的区别,而是要了解其他内容。
我从可靠的信息来源汇总了我的理解和知识(对于那些不知道的人)。
千兆字节和千兆字节用于十进制表示法,分别代表字节和位,功率为10。
Gibibyte和Gibibit用于二进制表示法,分别用2的幂表示字节和位。
为了符号,字节始终表示为B,位始终表示为b。
据我所知,上述信息属实。
以下是可在许多地方看到的引用,包括Wiki 32-bit,Stackoverflow 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毕业生所以请原谅我。
答案 0 :(得分:1)
2 ^ 32 = 4294967296 - 所以在32位架构上,你可以在内存中达到40亿个地址。每个地址都存储一个字节(8位)。
所以你的"最大记忆"确实是2 ^ 32字节或4 x 2 ^ 30字节或4 GiB。