java - 技嘉 vs 吉比 & 技嘉 vs 吉比

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

请注意:我知道它们之间的区别,所以这个问题不是为了知道它们之间的区别而是为了别的东西。

我将根据可靠信息来源整理的我的理解和知识(对于那些不知道的人)放在下面。

  1. 所有这些都是数字信息的字节倍数单位。
  2. Gigabyte和Gigabit是十进制表示法,分别表示字节和位的10次方。

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

    • 吉比字节 = 2^30 字节 (GiB)
    • 吉比特 = 2^30 字节(吉比特)
  4. 出于符号的考虑,字节始终表示为 B,位始终表示为 b。

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

下面是在很多地方都可以看到的引用,包括Wiki 32-bit , Stackoverflow 32 bit如下所示,32 位内存地址可以访问 4 GiB(这意味着 4 Gibibyte 而不是 4 Gibibit)的字节可寻址内存。

Hence, a processor with 32-bit memory addresses can directly access 4 GiB of byte-addressable memory.

问题:
我真的很困惑(事实上已经疯了)2^32 位内存地址如何访问 4 gibi 字节可寻址内存?不应该是 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.:我不是计算机科学毕业生,所以请原谅我。

最佳答案

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

所以你的“最大内存”确实是 2^32 字节或 4 x 2^30 字节或 4 GiB。

关于java - 技嘉 vs 吉比 & 技嘉 vs 吉比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31080472/

相关文章:

java - 如何在启动时预初始化 DBCP 连接池?

c - 将值传递给子进程处理程序

Java:PDF 转换器在 Mac 中工作,但在 Windows 中,生成空的 PDF 文件

Java - 将 int 转换为 4 字节的字节数组?

java - 带 spring-test 的 Spring Jar 版本

为音频文件创建 PNG 波形的 Java 程序

Java Elasticsearch 客户端 : throws ConnectException when connecting from local to ES in Google Cloud VM

Python path.join 在 Mac 和 Windows 中运行时的行为不同

ubuntu - 自定义实时 Ubuntu/Lubuntu

java - 将 short 放入 2 个字节的字符串中