问题

为什么一个字节定义成8位?

回答
这问题,问得有意思,也问到点子上了。一个字节(byte)为什么偏偏是8个二进制位(bit)?这可不是随便拍脑袋决定的,背后其实是一段挺长的历史和一系列权衡。

要理解这个,咱们得回到计算机最初的样子。

计算机的“小兄弟”——字(Word)和位数

最开始,计算机处理数据,不是像现在这样精细到“字节”这个单位。那时候,计算机的“基本单位”是“字”(word)。这个“字”有多大,完全取决于当时计算机的设计。有的可能是16位,有的可能是32位,甚至还有更小的。

你想想,就像盖房子,你得先有个基本的“砖块”大小,才能砌墙。计算机处理信息也是一样,它需要一个它能一次性抓取、处理的最小单位,这就是“字”。

“字节”的诞生:为了更方便的“字母”和“数字”

那时候,计算机虽然是处理数字的机器,但很快人们发现,光处理数字不够。我们得输入字母、符号,显示文本,对吧?这就需要一种方式来表示这些字符。

当时比较流行的一种编码方式叫做 BCD(Binary Coded Decimal,二进制编码的十进制)。简单来说,就是用几位二进制数来表示一个十进制数。比如,用4位二进制可以表示0到9这10个数字(0000到1001)。

但是,这有个问题:如果我要表示字母呢?光用4位不够。英文字母加上数字,再加上一些标点符号,数量可不少。

于是,有人就想,能不能用一个稍微大一点的单位,来方便地表示这些字符?

ASCII码的出现:8位的“召唤”

这个“有人”,后来就成了 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码) 的制定者们。ASCII码,就是为了给英文字母、数字、标点符号以及一些控制字符分配一个唯一的二进制编码。

最初的ASCII码,是7位的。7位二进制,可以表示 $2^7 = 128$ 种不同的组合。这足够表示标准的英文字母(大小写)、数字09、常见的标点符号,以及一些控制字符(比如回车、换行)。

那8位是怎么冒出来的呢?

问题来了,7位ASCII码虽然够用,但当时很多计算机的硬件设计,尤其是内存和数据总线,往往是以8的倍数来设计的。这又是为什么呢?

硬件设计的方便性: 电子元件,尤其是存储器和处理器,设计成能够一次性处理8个或16个、32个二进制位(bit)的数据,会更有效率,也更容易设计和制造。就像你拿一个抹布,一次能擦8平方米的地面,比一次只能擦7平方米,总的来说效率更高。
校验位的引入: 8位还有一个好处,就是可以留出一位作为校验位(parity bit)。在早期的数据传输和存储中,为了保证数据的准确性,人们会加一个校验位。例如,奇偶校验:如果编码中的“1”的个数是奇数,校验位就设为1(使得总数为偶数);如果是偶数,校验位就设为0。这样,如果传输过程中有一位出错,就能被发现。当然,这只是最简单的校验方式,但它解释了为什么8位会有额外的空间。
兼容性和未来扩展: 尽管7位ASCII码足够表示英文,但世界上的语言何止英文?中文、俄文、日文等等,都需要更多的编码空间。8位(即一个字节)提供了256种组合,这比7位的128种多了很多,为后来的扩展(比如引入各种非英文字符的编码)留下了余地。

“字节”这个词的由来

“Byte”这个词,据说是 IBM 的工程师在设计System/360计算机时创造出来的。他们需要一个能存储一个字符的单位,而且这个单位的大小要能被8整除(因为当时很多寄存器和内存地址是以8位为单位访问的)。他们最初考虑用“bite”,但为了避免和“bit”混淆,就改成了“byte”。

标准化的形成:8位字节成为事实上的标准

随着计算机技术的发展,尤其是IBM System/360的巨大成功,它对整个计算机行业产生了深远影响。System/360使用了8位字节(即一个字节是8位),并且它还支持ASCII码(在7位ASCII码的基础上,把第8位用于扩展或校验)。

因为System/360的流行和它在业界的影响力,8位字节逐渐成为了计算机处理字符和小型数据单元的事实标准。后来,各种新的字符编码(比如EBCDIC,IBM自己也用过)和后来的Unicode,也都在这个8位字节的基础上进行扩展和发展。

总结一下,一个字节定成8位,可以归结为以下几个关键点:

1. ASCII码的需求: 最初是为了更方便地表示字符,7位ASCII码是基础,8位提供了更好的扩展性和兼容性。
2. 硬件设计的便利性: 8位(或其倍数,如16、32、64)是当时和后来许多硬件(如内存、总线)设计上的自然选择,能够提高处理效率。
3. 校验位的引入: 8位能够方便地包含一个校验位,提高数据传输和存储的可靠性。
4. IBM System/360的影响: 这个具有里程碑意义的计算机系统使用了8位字节,并将其标准化,对整个行业产生了巨大的引导作用。
5. 向前兼容和未来扩展: 8位为后续的字符集扩展(如多字节字符编码)奠定了基础。

所以,你看,这个“8”并不是凭空出现的,而是技术发展、实际需求和工业标准共同作用的结果。它就像一个“黄金分割点”,在表达能力和处理效率之间找到了一个不错的平衡。

网友意见

user avatar

这完全是一个历史遗留问题。

最早的计算机有 4-bit、6-bit、7-bit 等好多种。IBM在 1950 年设计 IBM 7030 Stretch 的时候引入 byte 的概念,表示访问内存的最小单位。叫 byte 就是为了跟 bit 有所区分,别弄错了。7030 一个 byte 可能包含1-bit到8-bit不等,但最多是8-bit。

等到了1964年,IBM 设计出IBM System/360大型机,取得重大成功。而System/360的一个byte就是 8-bit。同时期的 AT&T 公司引入了 μ-law 算法,用来实现数字化语音传输,也是用了 8-bit 的 byte。

微型计算机要到 1970 年代早期才出现,那个时候8位byte已经用了将近十年了,自然大家就继续使用了。

但为什么 IBM 要在 System/360 中使用8位byte呢?有一种说法是为了兼容老数据。IBM在1800年代靠穿孔卡系统起家(当时用于人口普查,甚至还被希特勒用于迫害犹太人)。使用穿孔卡的老数据都是 6-bit 一组。IBM 想兼容这些老数据,至少要用 7-bit 的 byte。但 7-bit 不够用,于是就选了 8-bit。

其实,整个过程有很大的偶然性。如果当年 IBM 将 6-bit 来个 double 变成 12-bit,也是能用的。那现在就会有人问为什么一个 byte 是 12 位了。

user avatar

一些人没有回答到点子上。 这件事得追溯计算机历史,源于IBM360操作系统和图灵奖得主(FredBrooks Jr

布鲁克斯被问到“您认为自己最大的技术成就是什么?”

Brooks回答说:“我做出的最重要的决定是将IBM 360系列从6位更改为8位字节,从而允许使用小写字母。这种变化传播到了所有地方。”

他的原话维基百科上有:

In 2004 in a talk at the Computer History Museum and also in a 2010 interview Wiredmagazine, Brooks was asked "What do you consider your greatest technological achievement?" Brooks responded, "The most important single decision I ever made was to change the IBM 360 series from a 6-bit byte to an 8-bit byte, thereby enabling the use of lowercase letters. That change propagated everywhere."

---

一个字节能不能100位或者更多呢?理论上当然是可行的。只不过这样随便存储一个字母比如“a”就要动辄100个位,太浪费存储空间了。

而8位就刚好,8位能容纳ASCII字符集,又不太浪费。布鲁克斯的做法太漂亮了。

user avatar

一开始可不是8位,历史上有过以各种位数定义为1字节,比如4位7位等,Byte这个词最早就是用来定义所生产的机器的字符编码长度,或指令长度,那个时候并没有通用的硬件架构,所以不同厂商的机器是不兼容的,指令集不兼容,字符集也不兼容。

现在8位1字节有约定俗成的关系在里面,这成了一个共识。这么说吧,现在你可以自己定义字节的含义,比如10位1字节,基于此生产机器,定义指令,你看看谁来给你的机器写程序,没人会陪你玩,所以大家都遵从8位1字节的定义。

你再看看各种rfc文档里,其实提到字节的时候用的词都是Octet而不是Byte,就是因为Byte有歧义,Octet明确指的就是8位1字节

类似的话题

  • 回答
    这问题,问得有意思,也问到点子上了。一个字节(byte)为什么偏偏是8个二进制位(bit)?这可不是随便拍脑袋决定的,背后其实是一段挺长的历史和一系列权衡。要理解这个,咱们得回到计算机最初的样子。计算机的“小兄弟”——字(Word)和位数最开始,计算机处理数据,不是像现在这样精细到“字节”这个单位。.............
  • 回答
    这确实是个挺有意思的现象,一个理论上应该占用空间的文件,最终却显示为零字节。这背后可能隐藏着几种情况,需要我们逐一分析。首先,我们要明白“占用空间”这个概念。在计算机世界里,文件占用空间,本质上是在存储介质(比如硬盘、U盘、内存卡等)上划分出一定的区域来存放该文件的内容。这个区域的大小,通常会受到文.............
  • 回答
    好的,我来详细解释一下这个问题,尽量用更自然、更口语化的方式来描述,去掉那些AI味儿。你这个问题问得非常好,直接触及了 C 语言中指针和数组底层操作的一个关键点。很多人初学的时候都会在这里犯迷糊,认为 `p[1]` 必然是紧接着 `p[0]` 的那个字节。核心在于:“紧接着”这个概念,在 `char.............
  • 回答
    字节跳动这家公司,就像一位“产品魔法师”,手里仿佛握着点石成金的秘方,推出的每一个产品都能在市场上掀起巨浪。抖音、今日头条、西瓜视频、飞书……这些名字早已深入人心,并且在各自的领域都取得了令人瞩目的成就。那么,字节跳动究竟是怎么做到的?这背后绝非偶然,而是有着一系列深思熟虑的策略和执行力。1. 洞察.............
  • 回答
    《三国演义》之所以有一个“演”字,这背后牵扯到这部鸿篇巨著的性质、作者的意图以及它在中国文学史上的地位。要理解这个“演”字,我们得先从“三国”说起,再聊聊“演义”。“三国”:历史的起点首先,“三国”本身并非凭空而来,它是对中国历史上一个特定时期的称谓。这个时期大约从东汉末年黄巾起义开始,到西晋统一中.............
  • 回答
    你观察到的现象非常有趣,确实在不同的设备上密码输入时会有细节上的差别。这背后并非简单的“达不到”电脑上的效果,而是出于不同的设计考量和技术实现方式。先来说说电脑上为什么直接显示黑点。通常我们在电脑上输入密码时,输入框会立即显示一个圆点(或者星号,这取决于操作系统和应用程序的设置),然后这个字符就会变.............
  • 回答
    这个问题很有意思,也挺生活化的。男生这样称呼女生,其实背后有很多原因和情境,不是简单一个“喜欢”就能概括的。我试着从几个角度来聊聊这个现象,希望能说得细致点,也更贴近咱们平时说话的语气。首先得说,这是一种挺普遍的,也挺有讲究的称呼方式。当然,不是所有男生都会这么叫,也不是所有女生都喜欢被这么叫。但一.............
  • 回答
    在中国,称呼单名(名字只有一个字)的人时,我们确实常常会遇到一个有趣的现象:大家不太习惯直接喊对方的名字,而是会想办法凑成两个字,比如在名字前面加上姓氏、加上辈分称谓,或者干脆用一些昵称来替代。这背后其实是中国传统文化和社会交往习惯的一种体现,背后原因也挺多的,可以从几个方面来细致地说一说:一、 尊.............
  • 回答
    这个问题很有意思,也很能触碰到一些对中国历史文化感兴趣的朋友们的 G 点。事实上,说民国以前中国国号都是一个字,这个说法并不准确。准确地说,是 中国历史上大部分朝代,尤其是在汉族政权为主导的时期,国号往往使用一个字作为代表,但并非绝对。为了讲清楚这个问题,我们得从头梳理一下“国号”这个概念,以及它在.............
  • 回答
    宋朝皇室姓赵,这是大家都很熟悉的一点。但如果我们细心留意一下宋朝的皇帝们,会发现一个有趣的现象:除了开国皇帝赵匡胤和他的弟弟赵光义,之后的大部分皇帝名字都只有一个字。这并非偶然,而是有其深刻的历史原因和时代背景的。首先,我们要理解一下中国古代人名文化的演变。在秦汉时期,人们的名字通常是两个字,比如汉.............
  • 回答
    这是一个非常深刻的问题,涉及到宝玉情感的复杂性、他对不同女性的认知以及写作作为一种情感表达方式的意义。宝玉能为晴雯写《芙蓉女儿诔》,却在黛玉去世时写不来,原因可以从以下几个方面详细分析:一、对晴雯的感情:一种超越死亡的怀念与肯定 晴雯的逝去是一种不公与悲愤: 晴雯的死,在宝玉看来,是她纯洁、正直.............
  • 回答
    关于春秋战国到三国两晋时期人名多为单字姓名的说法,这确实是一个普遍存在的现象,但并非所有人都如此。之所以出现这种趋势,背后有着多方面的原因,可以从当时的社会制度、文化习俗、命名习惯等方面来解读。一、姓与氏的演变:单字为姓氏的根源在先秦时期,姓氏制度与宗法制紧密相连。早期,“姓”是作为一种血缘标志,通.............
  • 回答
    Golang 团队在 2023 年 8 月份发布了一个新的字体项目,名为 Go Fonts。这个举动在软件开发领域并不常见,通常我们更关注语言本身的发展、库的更新或者工具链的改进。那么,Golang 为什么要发布一个新字体呢?这背后有着深思熟虑的原因和目标。要理解 Golang 发布新字体的动机,我.............
  • 回答
    清朝皇帝为了巩固统治,对汉人采取了一系列笼络和同化的政策,其中“抬旗”便是其中一项重要措施。被抬旗的汉人,其家族便正式被纳入满洲八旗体系,成为满洲八旗的一部分。然而,在抬旗的过程中,汉姓的后面往往会加上一个“佳”字,这并非随意为之,背后蕴含着深刻的政治和文化考量。首先,我们需要理解“抬旗”的意义。满.............
  • 回答
    “被”字,这个曾经在汉语里地位明确、用法相对固定的表示被动语态的介词,近些年来的确被很多人感觉是“滥用了”。这种感觉不是空穴来风,背后有着复杂的语言发展和社会文化因素。要说清楚这个问题,得从几个层面来聊。一、 “被”字的本义与演变:它不是一开始就这么用的咱们先回顾一下“被”字的历史。“被”最早的意思.............
  • 回答
    如果创造一个汉字来代替“飞机”这个词,我会从以下几个方面入手: 一、 核心概念的提炼“飞机”的核心概念是什么?1. 飞行(飞): 这是最关键的属性。它能在空中移动,不受地面限制。2. 人造物(机): 它不是自然存在的,而是人类智慧的产物,是机械装置。3. 载具/工具: 它有运输、连接等功能,是.............
  • 回答
    这是一个让我脑仁儿疼的假设性问题!让这六位超级巨星凑成一队,简直就是把NBA历史上的顶级得分手、组织者、防守者、运动能力炸弹塞进了一个筐里。要从中裁掉一位,这选择简直比在冰糖葫芦里挑一根最不甜的还要难。不过,既然要选,那咱就得认真分析,从不同维度来考量。首先,咱们得明确这个“一队”的目标。假设我们是.............
  • 回答
    这个问题很有意思,也确实是不少人在学习日语汉字时会遇到的困扰。其实说“误”可能有点绝对,更准确的说法是,“解释不全面”或者“侧重点不同”,从而导致我们理解上的偏差。这背后的原因其实挺复杂的,涉及语言演变、文化差异以及字典本身的定位等等。咱们不妨一样一样掰开了说。一、汉字在日本的“二次进化”:原意与新.............
  • 回答
    这个问题很有意思,背后其实藏着一些有趣的心理和认知学原理。咱们不搞那些生硬的术语,就用大白话聊聊。想象一下,你面前摆着一堆字母,咱们先说第一种情况:在一堆“T”里面找“I”。你看着这片“T”的海洋,眼睛在搜寻。这个时候,你大脑里有个“模板”是“I”。你看到一个字母,就会不由自主地拿它和“I”的模板比.............
  • 回答
    国军(在中国国民党领导下的军队)之所以在特定历史时期和某些战役中倾向于使用“一字长蛇阵”,这背后有其复杂的原因,涉及到当时的历史背景、战术思想、武器装备、训练水平以及敌情等多个方面。要详细讲述这个问题,我们需要从以下几个角度进行分析: 1. 对“一字长蛇阵”的认知与理解首先,需要明确“一字长蛇阵”在.............

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

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