千兆 v/s 千兆 & 千兆 v/s 千兆
Gigabyte v/s Gibibyte & Gigabit v/s Gibibit
请注意:我知道区别,所以这道题不是想知道它们的区别,而是为了别的。
我将我的理解和知识(对于那些不知道的人)放在下面,根据可靠的信息来源编译。
- 数字信息都是以字节的倍数为单位
Gigabyte和Gigabit为十进制数,分别表示byte和bit的10次方
- 千兆字节 = 10^9 字节 (GB)
- 千兆 = 10^9 位(Gb 或 Gbit)
Gibibyte和Gibibit是二进制表示法,分别表示字节和位的2次方
- 千兆字节 = 2^30 字节 (GiB)
- Gibibit = 2^30 字节 (Gibit)
为了符号的原因,byte总是表示为B,bit总是表示为b。
据我所知,以上信息属实。
下面是引用,可以在很多地方看到,包括 Wiki 32-bit, Whosebug 32 bit 等。按照下面,32 位内存地址可以访问 4 GiB(这意味着 4 gibibyte 而不是 4 gibibit ) byte 个可寻址内存。
Hence, a processor with 32-bit memory addresses can directly access 4
GiB of byte-addressable memory.
问题:
我真的很困惑(事实上快疯了)2^32 bit 内存地址如何访问 4 gibibyte 的可寻址内存?不应该是 4 gibibit 或 .5 Gibibyte 吗?
1 个字节有 8 位,所以如果我们以字节为单位谈论内存,那么 2^32 位不是意味着 .5 吉比特或 4 吉比特吗?
我的意思是 2^32 位如何表示为 4 GiB 或 4 gibibyte?这不可能是某种约定,因为不能像这样播放字节和位。所以,有一个正当的理由。
如果有 2^32 个内存地址,每个存储 1 个字节,那么这意味着我有 2^32 * 2^3 = 2^35 位内存。 那么它不再是 2^32但是 2^35。没有?
P.S.:我不是CS专业的,请见谅
2^32 = 4294967296 - 所以在 32 位架构上你可以在内存中达到 40 亿个地址。每个地址存储一个字节(8位)。
所以你的 "maximum memory" 确实是 2^32 字节或 4 x 2^30 字节或 4 GiB。
请注意:我知道区别,所以这道题不是想知道它们的区别,而是为了别的。
我将我的理解和知识(对于那些不知道的人)放在下面,根据可靠的信息来源编译。
- 数字信息都是以字节的倍数为单位
Gigabyte和Gigabit为十进制数,分别表示byte和bit的10次方
- 千兆字节 = 10^9 字节 (GB)
- 千兆 = 10^9 位(Gb 或 Gbit)
Gibibyte和Gibibit是二进制表示法,分别表示字节和位的2次方
- 千兆字节 = 2^30 字节 (GiB)
- Gibibit = 2^30 字节 (Gibit)
为了符号的原因,byte总是表示为B,bit总是表示为b。
据我所知,以上信息属实。
下面是引用,可以在很多地方看到,包括 Wiki 32-bit, Whosebug 32 bit 等。按照下面,32 位内存地址可以访问 4 GiB(这意味着 4 gibibyte 而不是 4 gibibit ) byte 个可寻址内存。
Hence, a processor with 32-bit memory addresses can directly access 4 GiB of byte-addressable memory.
问题:
我真的很困惑(事实上快疯了)2^32 bit 内存地址如何访问 4 gibibyte 的可寻址内存?不应该是 4 gibibit 或 .5 Gibibyte 吗?
1 个字节有 8 位,所以如果我们以字节为单位谈论内存,那么 2^32 位不是意味着 .5 吉比特或 4 吉比特吗?
我的意思是 2^32 位如何表示为 4 GiB 或 4 gibibyte?这不可能是某种约定,因为不能像这样播放字节和位。所以,有一个正当的理由。
如果有 2^32 个内存地址,每个存储 1 个字节,那么这意味着我有 2^32 * 2^3 = 2^35 位内存。 那么它不再是 2^32但是 2^35。没有?
P.S.:我不是CS专业的,请见谅
2^32 = 4294967296 - 所以在 32 位架构上你可以在内存中达到 40 亿个地址。每个地址存储一个字节(8位)。
所以你的 "maximum memory" 确实是 2^32 字节或 4 x 2^30 字节或 4 GiB。