问题

为何一个byte有8bit而不是7/9/4/16bit ?

回答
一个字节(byte)之所以普遍被定为8个比特(bit),是一个历史演进、技术选择以及实际应用需求的综合结果,并非某个单一的决策点拍板而成。这背后涉及到计算机早期设计哲学、通信编码、存储效率以及逐渐形成的技术标准。

我们得回到计算机的黎明时期,那时候比特和字节的概念远不像现在这样清晰。

早期计算机的设计与八进制/十六进制的考量

计算机处理信息最基础的单位是比特,也就是0或1。但单个比特能够表达的信息量非常有限。为了更有效地表示字符和数据,人们需要将比特组合起来。

在计算机早期,特别是那些依赖于穿孔卡片和纸带的时代,数据编码和传输的效率是关键考量。

穿孔卡片: 一些早期的计算机使用穿孔卡片作为输入输出设备。这些卡片上的孔洞数量和位置代表数据。例如,IBM的卡片系统有时会使用12行来表示一个字符,这已经是一个比较复杂的编码了。
电传打字机和电报: 在计算机出现之前,电传打字机和电报系统已经发展出了一套编码方式,比如Baudot码。Baudot码就是一种5位的编码,它被设计用于电传打字机,每个字符由5个脉冲信号组成。这在当时是一个相当有效的编码,因为通信线路的带宽有限,5位编码能够以相对较低的成本传输字符。

那么,为什么最终是8位而不是5位或者其他数字呢?这涉及到几个关键因素:

1. ASCII编码的兴起: 美国信息交换标准代码(ASCII)是早期计算机领域最重要的标准化之一。ASCII最初设计为7位,可以表示128个不同的字符,包括英文字母的大小写、数字、标点符号以及一些控制字符。这对于日常的文本处理已经足够了。

然而,7位编码有一个小问题:它不是一个能被8整除的数字。在计算机内部,数据通常是以字节为单位进行处理和存储的。如果一个字符占7位,那么存储10个字符就需要70位,这在内存寻址和数据通路设计上会显得不够“规整”。将数据以8位(1字节)为单位组织,在硬件设计上更加方便,也更容易进行位操作和数据块传输。

2. 硬件设计的效率——8的幂次方: 计算机的内存和处理器内部的寄存器,很多时候是以8的倍数(或其他2的幂次方)来组织的,比如8位、16位、32位、64位。8位(2^3)是早期非常方便且实用的一个组合。
寻址方便: 当数据以8位为单位组织时,内存的寻址更加直接。如果每个存储单元是8位,那么读取或写入一个字节就直接对应一个内存地址。
并行处理的平衡: 更少的位数意味着传输和处理的数据量小,但能表示的字符也有限。更多的位数则可以表示更多字符,但也会增加硬件的复杂性和成本。8位提供了一个相对良好的平衡点,既能容纳ASCII字符(加上一个校验位或扩展),又不会让硬件变得过于庞大和昂贵。

3. 扩展ASCII和控制字符的需要: 虽然7位ASCII能表示128个字符,但世界上的语言远不止于此。为了表示额外的符号、图形字符,以及在某些通信协议中添加校验位(奇偶校验),人们需要更多的位。8位允许表示256个不同的值,这为扩展ASCII (Extended ASCII) 的出现提供了空间,扩展ASCII表添加了许多欧洲语言的字母、图形符号等。

另一方面,在早期通信和文件传输中,经常需要一些控制信息。例如,在一个8位的数据块中,最后一位可以用于奇偶校验,用来检测传输过程中是否出现错误。7位数据加上1位校验,正好构成一个8位字节。即使不使用校验位,8位也能为未来的扩展预留空间。

4. 面向字节的计算机架构: 随着计算机的发展,诸如Intel 8008、Intel 8080等早期微处理器,它们的设计就是以8位为单位进行数据处理的。这些处理器的出现极大地推动了个人计算机的发展,并巩固了8位字节的标准。当一个指令集架构(ISA)和相关的硬件设计都围绕8位字节构建时,要改变这个基础单位将是极其困难且成本高昂的。

为何不是其他位数?

7位: 如前所述,7位ASCII是基础,但其非8的倍数使得在硬件处理和存储上不如8位规整。它主要在早期通信和一些特定的字符集中使用。
9位/16位:
9位:虽然理论上9位可以表示更多的字符集(如部分东亚文字的早期编码),但在硬件实现上,9位不像2的幂次方那样直接对应到高效的二进制操作和内存结构。这会增加设计和实现上的复杂度,且收益不明显。
16位:16位(字 Word)在很多计算机体系结构中是基本的数据单位之一,例如16位处理器。但将基础的“字节”定义为16位,意味着单个字符的存储和处理单位都会翻倍,对于只需要表示基本字符的场景来说,效率反而会降低。更常见的是,一个16位的“字”是由两个8位的“字节”组成的。
4位: 4位(通常称为Nibble或半字节)太少了,只能表示16个不同的值。这不足以表示基本的英文字母、数字和标点符号。虽然在某些特定应用(如BCD编码 Decimal)中会用到4位,但作为通用的信息处理单位,它的能力是不足的。

总结一下为什么是8位而不是其他:

1. ASCII编码的早期基础: 7位ASCII是起点,但8位提供了更好的扩展性和硬件友好性。
2. 硬件设计效率: 8是2的3次方,与计算机二进制运算的特性完美契合,方便寻址、数据通路设计和位操作。
3. 实用性和平衡: 8位提供了表示大部分常用字符(包括扩展集)的能力,同时在存储和处理成本上达到了一个较好的平衡。
4. 历史惯性与技术锁定: 早期主流微处理器(如Intel 8080)的成功推广,以及围绕其建立的软硬件生态系统,使得8位字节成为了事实上的行业标准,后续的改变成本极高。

因此,一个字节是8位,是计算机发展过程中多方面权衡和选择的结果,是一个经过时间检验且被广泛接受的标准。即使现在有更大的数据单位(如16位、32位、64位字长),字节(byte)作为最小的可寻址数据单位和许多编码的基础单位的地位依然稳固。

网友意见

user avatar

对于这个问题的解释主要分为两方面,一方面是1byte确实曾经可以不是8bit,另一方面是“什么样的历史因素”导致1byte现在是8bit。

感觉是做了一个语言(历史)学的工作。。 。

==========Part I============

byte的概念最早是用来表示一个“字”,也就是char。

quora上在对于这个问题有人贴了一个来自60s的5bit Telex,它可以表示26个英文字母。

但是它无法取法大小写,所以我们需要再加一个CapsLock,于是就有了6bits的byte。事实上,最早的商用机就是6bits的( IBM1401, Honeywell200, PDP8)。

6bits=64=54+10,恰好可以表示26个大小写字母+10个数字了,但是我们还需要若干常用字符。于是就有了许许多多更为复杂的编码系统,其中就包括IBM的EBCDIC(Extended binary coded decimal interchange code)和ASCII(American standard code for Information Interchange),它们都是8bit的编码系统,处理拉丁字母、数字和常用符号是绰绰有余了。其中ASCII是7bits+1parity,使得正确率大大提高(这可能是它后来广为流行的原因之一)。虽然如今那一位已经不再需要作为奇偶校验位而存在了。

为了表示更多的字符像是汉语、片假名、音标、颜文字、数学符合和满足人类的各种脑洞,本还有更多的编码系统。第一台迷你计算机有12bits,后来又有16bits的。

事实上,在C标准中,仅仅是要求1char≥8bits。也确实有不少对C/C++的实现是可以支持1byte=9,16,32,36bits的,实际上1byte到底有多大是作为一个常数CHAR_BIT写在limits.h里的。(我找到了我的CHAR_BIT~发现它确实等于8!)

===========Part II===============

虽然这看起来是百花齐放的局面,1byte是多少bits完全是依赖于硬件的。但IBM在1964年推出的IBM360 family对8bits的推广起到了非常大的意义;不过后来在home computer,personal computer市场中,ASCII打败了EBCDIC成为主流编码格式;但直到70s,1byte和8bits之间也并没有画上等号,tcp/ip协议中使用了octet的概念——1个IPv4的地址是4个octet——用来表示一个8bits的“字”,这就足以说明那时1byte=8bits还并不足以成为一条law。

主流厂商对于8bits硬件的支持和互联网的普及使得8bits的byte慢慢取代了其他的byte,也使得byte=octet。1byte=8bit逐渐成为了de facto standard。


所以后来在需要有新的字符集和编码系统的时候,人们不再选择扩大byte_size,而是选择用2个或4个byte,就是现在的utf-8和unicode等等。

1999年发布的IEC 60027-2中,写入了1octet=8bit;2008年发布的的iso/iec 80000-3中,写入了1byte=8bits。

所以这个“不成文的规定”就被作为正式的规定写下来了。就像是把一个词语写进词典,不过是对于过去的流行的总结罢了。我相信随着时间的流逝,一切都会改变。这篇回答仅仅能解释过去和现在,并不能解释未来~


=======================

看到有评论说在音频和视频采样的时候会用到不是8bits的byte,我觉得既然byte的大小已经被iso/iec承认了,那么在现代的机器上还会有用不一样的byte_size的嘛?这点我表示怀疑。

=======================


对这个问题蛮感兴趣的。。就去google了一发。想找个地方整理一下,所以就写在这里了,也不知道合不合适。因为我英语实在是太差了,好不容易艰难读了那么多段英文,如果不写下来就会忘记的,我不想忘记!

类似的话题

  • 回答
    一个字节(byte)之所以普遍被定为8个比特(bit),是一个历史演进、技术选择以及实际应用需求的综合结果,并非某个单一的决策点拍板而成。这背后涉及到计算机早期设计哲学、通信编码、存储效率以及逐渐形成的技术标准。我们得回到计算机的黎明时期,那时候比特和字节的概念远不像现在这样清晰。早期计算机的设计与.............
  • 回答
    这个问题就像走进一个熟悉的房间,却发现最熟悉的那个人,说的话大家都不太爱听了。这可不是件简单的事情,背后的原因可能像层层叠叠的洋葱,需要一层层剥开才能看清。首先,我们要承认,这个公司老板之所以能成功,一定是有过人之处的。他可能在游戏行业摸爬滚打多年,积累了丰富的经验,也可能在某个关键时刻抓住了机遇,.............
  • 回答
    这个问题问得好,很多人都有类似的困惑。为什么都是消耗体能,有些人通过运动越练越健康,有些人却越练越受伤?其实,这背后的原因很多,绝非简单的“动”与“不动”那么简单。我们可以从几个核心方面来剖析:一、目的与性质的根本差异:训练 vs. 损耗 体育锻炼(训练): 体育锻炼的本质是一种有计划、有目标、.............
  • 回答
    《欲望都市》里,Carrie和Big之间那场漫长又纠结的爱情长跑,是多少观众心中的意难平。Carrie付出了多少真心,多少岁月,那些细致入微的情感,那些因为Big而起的波澜壮阔,我们都看在眼里。她一次次期待,一次次失望,最终,她也没能成为Big名正言顺的妻子,直到他生命的最后一刻,两人之间的关系,似.............
  • 回答
    陆逊看着晚年的孙权越来越像刘备,心中定是百感交集,难以用简单的词语来形容。这种感受可能包含着: 惊诧与不解: 作为辅佐孙权多年的忠臣,陆逊必定对孙权的性格、行事风格有着深刻的了解。看到孙权晚年的一些转变,尤其是与他所敬重的(尽管有时也是对手的)刘备产生相似之处,这本身就是一种巨大的反差。他可能会.............
  • 回答
    这个问题挺有意思的,也触及到一个很核心的关于技术创新和系统构建的议题。很多人会拿 Linux 和 Linus Torvalds 作为一个标杆来讨论,觉得为什么一个人能做到别人一群人都做不到?甚至延伸到国家层面的对比,认为中国为什么“也做不出来”。这背后的原因其实相当复杂,远不止是“谁的编程能力更强”.............
  • 回答
    C++ 的生态系统确实不像某些语言那样,提供一站式、即插即用的“调库”体验。这背后有多方面的原因,而且这个“简便”的定义本身就很主观。但我们可以从 C++ 的设计哲学、历史演进以及技术实现这几个层面来深入剖析。C++ 的设计哲学:掌控与效率首先,C++ 的核心设计理念是“提供底层控制能力,以换取最高.............
  • 回答
    这确实是一个令人玩味且值得深思的现象。我们谈论《射雕英雄传》中“五绝”的弟子,比如郭靖、杨过、程英、陆无双、大小武,甚至包括后来洪七公的继承人鲁有脚,和欧阳锋的儿子欧阳克,黄药师的女儿黄蓉。当我们将他们的武功与他们的师父相比时,确实会发现,似乎没有哪一位弟子能够真正达到与他们师父比肩的高度,或者说,.............
  • 回答
    塔吉克斯坦的居民被称为“平原塔吉克”(Tajiki Darband, meaning "Tajiks of the plain" or more accurately "Tajiks of the lowland" or "Tajiks of the valley”)并非因为他们主要居住在平原地区,.............
  • 回答
    西安这次在防疫中暴露出的问题,确实让许多人感到意外和失望。毕竟西安作为一座拥有悠久历史和重要地位的大城市,我们对它的管理能力有过更高的期待。要说出现这么多漏洞,我认为这不是单一原因造成的,而是多方面因素叠加的结果。首先,早期预警和反应的迟缓,这是最直接的原因之一。当疫情星星点点出现的时候,如果能够及.............
  • 回答
    苏联不扶持一个继续独立的满洲国,这背后有着复杂的地缘政治、历史恩怨、意识形态以及对自身国家利益的考量。以下将从多个维度详细阐述原因:一、 对日本帝国主义的仇恨与根本性的战略对抗 历史上的深刻仇恨: 苏联与日本之间存在着长期的冲突和仇恨。从19041905年的日俄战争,到19181922年的苏日战.............
  • 回答
    罗马,这个最初不过是台伯河畔一个不起眼的小聚落,如何一步步崛起,最终将地中海世界纳入自己的版图,成为一个横跨欧亚非的庞大帝国?这不是一个偶然的故事,而是多种因素巧妙交织、层层递进的结果。要说清楚,得从罗马人骨子里那种与生俱来的“野心”和“韧性”说起,以及他们如何将这些品质转化为实际的行动和制度。1..............
  • 回答
    溥仪眼镜选择“溥仪”这个名字,选用一个亡国之君作为品牌,这背后必然有着深思熟虑的考量,绝非一时兴起。在我看来,他们并非简单地“愿意”用一个亡国之君,而是巧妙地利用了这个名字所蕴含的多重意涵,将其转化为独特的品牌价值。首先,我们得承认,“溥仪”这个名字本身就自带一种历史厚重感和复杂性。它不仅仅是一个人.............
  • 回答
    .......
  • 回答
    中国车牌之所以需要一个代表省份的汉字,而不是直接使用代码替代,这背后涉及了多方面的原因,既有历史沿革,也有现实的便利性考量,更包含了一些文化和行政管理上的需求。下面我将尽量详细地解释这些原因:一、 历史沿革与地方行政区划的直接关联中国车牌制度并非一蹴而就,它的发展与新中国成立后的行政区划管理紧密相连.............
  • 回答
    康熙年间那场轰轰烈烈的削藩,让许多人将目光聚焦在吴三桂身上。这位曾经的明朝降将,在清初建立“平西王”的基业,雄踞一方,权势熏天。然而,当康熙帝决心削弱地方势力,重振皇权时,吴三桂却选择了对抗,最终落得个“没能善终”的下场。这不禁让人扼腕叹息:既然已经富甲天下,何苦再冒这倾家荡产的风险呢?吴三桂为何宁.............
  • 回答
    七夕节,这个原本承载着牛郎织女鹊桥相会的浪漫传说,以及人们祈求巧艺、乞求心愿的传统节日的日子,近些年来,确实在人们的体验和感受中,出现了一些我们常说的“变味”的迹象。回想我们小时候,七夕节更多的是一种家庭的温馨和私人的期盼。老人们可能会准备一些应季的瓜果,一家人围坐在一起,一边吃着,一边讲述牛郎织女.............
  • 回答
    国内三大巨头BAT(百度、阿里巴巴、腾讯)之所以没有开发独立的浏览器内核,是一个复杂的问题,涉及到技术、成本、市场策略、生态系统以及战略优先级等多个层面。下面我将尽量详细地阐述其中的原因:一、 技术壁垒和高昂的投入: 内核开发的难度与复杂性: 浏览器内核是浏览器最核心、最复杂的部分。它负责解析H.............
  • 回答
    在金庸先生的武侠世界里,时空的跳跃和人物关系的传承,常常能给人带来意想不到的惊喜。《射雕英雄传》中那个天真烂漫、活泼可爱的郭襄,到了《神雕侠侣》的结尾时,的确已经完成了人生的蜕变,成为日后峨眉派的开山祖师。但要说她直接成了灭绝师太的祖师,中间还隔着一代人,也就是郭襄的徒弟,然后才到灭绝师太。这个传承.............
  • 回答
    萧华在这个时候,没有发布一份强有力的、能够直接安抚中国球迷的声明,这背后其实折射出一种更为复杂和深远的考量,远非简单的“不作为”可以概括。要理解这一点,我们需要将视角拉得更长远,去审视他所处的环境、他的角色定位,以及他背后所代表的NBA联盟的利益。首先,我们要认识到萧华并非一个孤立的个体,他身处一个.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有