【发布时间】:2015-09-13 20:06:55
【问题描述】:
请注意:我知道它们之间的区别,所以这个问题不是要知道它们之间的区别,而是要知道别的东西。
我将根据可靠信息来源汇编的我的理解和知识(对于那些不知道的人)。
- 所有这些都是数字信息的字节倍数单位。
-
Gigabyte 和 Gigabit 是十进制表示法,分别以 10 的幂表示字节和位。
- 千兆字节 = 10^9 字节 (GB)
- 千兆位 = 10^9 位(Gb 或 Gbit)
-
Gibibyte 和 Gibibit 为二进制,分别以 2 的幂表示字节和位。
- Gibibyte = 2^30 字节 (GiB)
- 千兆位 = 2^30 字节(千兆位)
为了符号,字节总是用B表示,位总是用b表示。
据我所知,以上信息属实。
下面是引用,可以在很多地方看到,包括Wiki 32-bit、Stackoverflow 32 bit 等。如下所示,32 位内存地址可以访问 4 GiB(这意味着 4 gibibyte 而不是 4 gibibit) 的 byte 可寻址内存。
因此,具有 32 位内存地址的处理器可以直接访问 4 GiB 字节可寻址内存。
问题:
我真的很困惑(实际上是疯了)2^32 bit 内存地址如何访问 4 gibibyte 的可寻址内存?不应该是 4 gibibit 还是 0.5 Gibibyte?
1 个字节有 8 位,所以如果我们用字节来讨论内存,那么 2^32 位不是意味着 0.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毕业生,请见谅。
【问题讨论】:
-
这里好像有人回答了这个问题:superuser.com/questions/699737/…
-
注意定义:“字节可寻址内存”。
-
@RealSkeptic 即使是“字节可寻址内存”,那么 4 GiB 又如何?使用 2^32 位如何推导出 4 GiB,这是我无法理解的部分.. 当你用字节说话时,1 字节 = 8 位,所以需要转换。 “字节可寻址内存”很好,但为什么要 4 GiB?
-
@Keith 感谢您的链接。但是,对我来说,被接受的答案是谈论一些完全不同的东西,比如内存短缺、交换等,而不是解释真实的东西。
标签: java operating-system byte 32-bit memory-address