gpt4 book ai didi

binary - 为什么二进制用八位字节表示?

转载 作者:行者123 更新时间:2023-12-02 08:38:26 26 4
gpt4 key购买 nike

我一直在谷歌上寻找答案,但似乎找不到。但二进制是以字节/八位字节、8 位表示的。所以字符 a(我认为)是 01100010, 而单词 hey 是

01101000 
01100101
01111001

所以我的问题是,为什么是 8?这个数字适合计算机使用吗?我注意到 32 位/62 位计算机都是 8 的倍数...那么这一切都与第一台计算机的制造方式有关吗?

抱歉,如果这个问题不符合 Q/A 标准...它与代码无关,但我想不出其他地方可以问它。

最佳答案

答案确实是“历史原因”。

计算机内存必须在某种程度上可寻址。当您向 RAM 请求信息时,您需要指定您想要哪些信息 - 它会将这些信息返回给您。理论上,可以产生可位寻址的内存:您请求一位,您会得到一位。

但这不会非常有效,因为将处理器连接到内存的接口(interface)需要能够传达足够的信息来指定它想要的地址。访问粒度越小,在给出足够准确的检索地址之前,您需要的线路就越多(或者沿着相同数量的线路推送更多的线路)。此外,多次返回一位的效率低于一次返回多个位的效率(旁注:一般情况下是这样。这是串行与并行的争论,并且由于系统复杂性和物理性能降低,串行接口(interface)通常可以运行得更快。但总体而言,一次更多位的效率更高)。

其次,系统中的内存总量部分受到最小可寻址 block 大小的限制,因为除非您使用可变大小的内存地址,否则您只有有限数量的地址 使用 - 但每个地址代表您可以选择的多个位。因此,具有逻辑字节可寻址内存的系统可以容纳的 RAM 是具有逻辑位可寻址内存的系统的八倍。

因此,我们使用逻辑上可寻址的不太精细级别的内存(尽管物理上没有 RAM 芯片只会返回一个字节)。只有二​​的幂才真正有意义,并且历史上访问级别一直是字节。它可能很容易是一个半字节或一个两字节字,事实上,较旧的系统确实具有比八位更小的 block 。

现在,当然,现代处理器大多以缓存行大小的增量消耗内存,但我们表达分组和划分当前虚拟地址空间的方法仍然存在,并且 CPU 指令占用的最小内存量可以直接访问的仍然是八位 block 。 CPU 指令的机器代码(和/或进入处理器的路径)必须以与连接到内存 Controller 的电线数量相同的方式增长,以便寄存器可寻址 - 这与以下问题相同我之前谈到的系统内存可访问性。

关于binary - 为什么二进制用八位字节表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9278153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com