为什么存在字节?为什么我们不使用比特?

15 hardware byte bit

大多数系统上的字节由8位组成.

字节通常表示程序员可能使用的最小数据类型.根据语言,可能会调用数据类型charbyte.

有些类型的数据(布尔值,小整数等)可以存储在比字节更少的位中.然而,我所知道的(本机)编程语言不支持使用少于一个字节.

为什么存在使用8位存储数据的最小值?为什么我们甚至需要字节?为什么计算机不使用位的增量(1位或更多位)而不是字节的增量(8位的倍数)?

万一有人问:我不担心.我没有任何具体需求.我只是好奇.

pm1*_*100 7

因为在硬件级别,内存自然地组织成可寻址的块.小块意味着你可以拥有像4位数这样的细粒度的东西; 大块允许更有效的操作(通常CPU以"块"或其中多个移动物体).特别是较大的可寻址块可以形成更大的地址空间.如果我有1比特的块,则地址范围1到500仅覆盖500比特,而500个8比特块覆盖4000比特.

注意 - 它并不总是8位.我在一台6位思考的机器上工作.(好老八进制)


Ric*_*mes 7

纸带(~1950 年代)有 5 或 6 个孔(位)宽,也可能是其他宽度。穿孔卡片(较新的一种)是 12 行 80 列。

1960 年代:
B-5000——48 位“字”和 6 位字符
CDC-6600——60 位字和 6 位字符
IBM 7090——36 位字和 6 位字符
有 12 位机器; 等等。

1970-1980 年代,“micros”进入图片:
Intel 4004 - 4-bit chunks
8008, 8086, Z80, 6502, etc - 8 bit chunks
68000 - 16-bit words, but still 8-bit bytes
486 - 32-bit words ,但
今天仍然是 8 位字节- 64 位字,但
未来仍然是 8 位字节- 128 等,但仍然是 8 位字节

得到图片?美国人认为字符只能以 6 位存储。
然后我们发现世界上的东西不仅仅是英语。
所以我们在 7 位 ascii 和 8 位 EBCDIC 上挣扎。

最终,我们决定 8 位足以满足我们需要的所有字符。(“我们”不是中国人。)

IBM-360 在 60 至 70 年代成为主导机器;它基于一个 8 位字节。(它有点像 32 位字,但这变得不如全能字节重要。

当您真正需要 7 位来存储您需要的所有字符时,使用 8 位似乎是一种浪费。

IBM 在 20 世纪中叶以 70% 的硬件和软件销售额“拥有”计算机市场。由于 360 是他们的主要机器,因此所有竞争对手都可以复制 8 位字节。

最终,我们意识到存在其他语言并提出了 Unicode/utf8 及其变体。但那是另一个故事了。