📖 名词溯源:bit 这个词从哪来? bit 是 binary digit(二进制数字)的缩写,字面意思是「二进制的一位」。它的本质,就是一次二选一——是/否、开/关、真/假、1/0。1 个 bit 只能表达两种可能;2 个 bit 能表达 2×2=4 种;8 个 bit 能表达 2⁸=256 种。bit 越多,能表达的信息就越多。
🎯 本章学习目标
- 说清「信息」为什么可以被数字化,以及最小单位 bit 的物理意义。
- 从原子的层面理解「电」:电荷、电子、电流、电压到底是什么。
- 理解为什么计算机选择「电」作为信息载体,而不是水、齿轮或别的。
- 理解「开关」为什么是计算机的最小元件——它如何对应 0 和 1。
- 会计算「区分 N 种状态需要几位 bit」,理解 0/1 编码为什么足以表达文字、声音、图像。
- 理解工程上「阈值 + 噪声容限」如何把「有电/没电」变成可靠的 0 和 1。
1.1计算机的本质:一台信息处理机器
不管是一台超级计算机,还是你口袋里的手机,它们做的事都能归结为一句话:
核心思想 计算机是一台信息处理机器——它接收信息(输入),对信息做加工(处理),再把结果送出来(输出)。
这三步,是理解一切计算机的钥匙。看几个你熟悉的例子:
| 场景 | 输入 | 处理 | 输出 |
|---|---|---|---|
| 用计算器算账 | 敲下「3 + 5」 | 做加法 | 显示「8」 |
| 发一条微信 | 打字输入文字 | 编码、打包、传输 | 对方屏幕显示出消息 |
| 搜索一个词 | 输入关键词 | 检索并排序 | 显示结果列表 |
但这句话只是「总纲」,还没到地基。真正的问题藏在两个词里:
- 「信息」到底是什么?它凭什么能塞进机器里被处理?
- 「处理」靠什么发生?机器里到底有什么东西在「动」?
这一章,我们就从这两个词一路挖到底。
信息、载体与数据:三个最容易搅在一起的词
要看透「信息处理机器」,还得先分清三个词:信息(information)、载体(carrier)与数据(data)。
信息是抽象的——「明天有雨」这句话的含义,就是信息本身。但抽象的东西没法直接进机器:它必须「骑」在某个物理存在上,才能被记录和传递。写在纸上,载体是墨迹与纤维;说出口,载体是空气里的声波;变成电,载体是电压的高低。同一条信息可以在不同载体之间来回搬家,而内容不变——这是数字化得以成立的哲学前提,术语上叫信息与载体分离。理解了这一点你才能明白:计算机里流动的那些 0 和 1,只是信息「此刻坐的这辆车」——车可以换,乘客不变。
那数据是什么?数据是信息被编码之后的载体形态:一串符号、一排 0/1。数据本身不说话——同一串 0/1,用不同的规则去解释,读出来的东西完全不同。换句话说,信息 = 数据 + 解释规则。这就是为什么任何两台设备要交换信息,都必须先谈妥一份共同的编码约定(行业里叫「接口定义」或「协议」):发送方按约定把信息压成数据,接收方按同一份约定把数据还原成信息。约定一旦对不上,再精确的数据也只是乱码。
为什么区分它们很重要 工程现场说「这块板子数据没过来」,其实混淆了两件事:可能是「电信号根本没到」(载体的毛病),也可能是「信号到了、但编码规则对不上」(解释的毛病)。排故时把这两类问题分开查,就不会白忙。
「处理」为什么必须靠规则
光有输入和输出还不够,中间那一步「处理」才是机器的真本事。所谓处理,就是对编码好的数据做有规则的变换:加法是规则,排序是规则,「超过阈值就报警」也是规则。关键在于,这些规则必须是机械化的——每一步怎么做都规定得清清楚楚,不依赖任何人的临场发挥。算盘之所以不算计算机,因为「怎么打」这套规则装在珠算师傅的脑子里;计算机把规则本身做进机器里,让它自己执行。这个差别,正是「机器」与「工具」的分水岭。第 2、3 章你会看到,这些规则最终是怎么落到开关网络上的。
「输入 → 处理 → 输出」还有个好处:它是普适的思考框架。人也符合——眼睛耳朵收信息、大脑加工、语言行动输出;生产线也符合——来料、加工、成品;飞机上的每台电子设备也都符合。以后遇到任何陌生系统,先别慌:把它拆成这三块,逐块问「输入是什么、按什么规则处理、输出给谁」,系统的骨架立刻就清楚了。
📐 例题 1 区分 N 种状态,至少需要几位编码?
某机载状态监控单元需要区分 12 种设备工作状态(正常、测试中、性能下降、一级故障……共 12 种)。若用「二选一」的 bit 来编码,至少需要几位?若只肯用 3 位,会发生什么?
思路 编码的本质是「给每种状态发一个互不相同的编号」。n 位 bit 能提供的不同编号数是 2ⁿ 个,所以只要找到最小的 n,使 2ⁿ ≥ 12 即可。
解 从小往大试探:2³ = 8,8 < 12,不够;2⁴ = 16,16 ≥ 12,够用。所以至少需要 4 位。若只肯用 3 位:编号总共只有 2³ = 8 个,而状态有 12 种——必有至少两种状态共用同一个编号,接收方将无法区分,编码失败。
答:至少需要 4 位(16 个码点覆盖 12 种状态后,还剩 4 个备用);只给 3 位则 12 种状态挤 8 个码,必然冲突,无法可靠编码。 ⚠ 易错点:不要把「12 种状态」误当成「需要 12 位」——位数对应的是编号的容量,不是状态数本身;另注意 2³ = 8 与 12 比较时是「不够」,别看错方向。
工程现场:三步曲在航电设备上的样子
把三步曲放到航空电子(航电)语境里,你会发现它就是设备说明书的标准章节结构。以一台「大气数据计算机」为例:输入端接总压/静压传感器和总温探头——把看不见的气压、温度先变成电压信号;处理端按标准大气公式把电压换算成高度、空速、升降率;输出端把结果送往驾驶舱显示器和需要这些数据的其他计算机。再看液压系统:压力传感器(输入)→「压力低于门限且持续 2 秒则判渗漏」(处理,规则里还带时间条件)→ 警示灯点亮(输出)。你看,航电设备的功能描述,翻译过来全是三步曲;而工程排故的第一刀,往往也是沿三步曲切:先确认输入信号对不对,再查处理逻辑对不对,最后查输出通路——一块一块排除,问题就藏不住。
| 数据(完全相同) | 解释规则 | 读出的信息 |
|---|---|---|
| 0100 0001 | 按字符编码(ASCII)解释 | 字母「A」 |
| 按 8 位无符号整数解释 | 数值 65 | |
| 按「8 路开关状态记录」解释 | 第 7、8 两路接通,其余断开 |
这张表是本节最想留给你的一句话:数据不会自己开口,信息 = 数据 + 规则。以后你读任何手册里的「数据格式定义」,都要想起这张表——那一页页的字节定义,就是在告诉你「解释规则」。
1.2信息的最小单位:bit 与「二选一」
先看第一个问题:信息是什么?
你看到的文字、图片、声音,本质上都是「信息」。而信息有一个神奇的性质:它可以被拆成无数个「选择」。任何信息,最终都能分解成一系列「是/否」的判断。
举两个例子:
- 猜数字游戏:我心里想一个 1 到 8 的数,你只能问「是/否」问题。你会先问「大于 4 吗?」,再问「大于 2 吗?」……每一次回答都是一次二选一。连续几次二选一,就能锁定唯一的答案。
- 文字:约定一套编码,每个字符对应一串「0/1」的组合,文字就变成了二选一的序列。
这种「二选一」,就是信息的最小单位,我们叫它 bit(比特)。
为什么偏偏是「二选一」,而不是「十选一」?
这是个关键问题。生活中我们习惯用十进制(0–9 十种),为什么计算机偏要用「二选一」?答案是物理上的原因,不是数学上的:
底层原理 要在机器里表示信息,就得用一个「能稳定保持、能被准确区分」的物理状态。物理世界里,「两个状态」最容易做得又稳又准——比如灯的「亮/灭」、开关的「通/断」、电压的「高/低」。状态越少,越不容易出错。想在一个元件上稳定区分出 10 个不同电压(对应 0–9),太难了,稍有干扰就会出错;但区分「有电/没电」两个状态,几乎不可能搞错。
这就是为什么整个数字世界都建立在「0 和 1」两个符号上——因为物理元件最容易稳定地实现两个状态。记住这一点,后面讲晶体管、逻辑门、存储时,你都会不断回到这里。
从「两个状态」到「表达一切」:编码的普适性
「一串 0/1 怎么可能装下整个世界?」——这是每个初学者都会冒出来的疑问。答案分三层,一层比一层具体。
第一层:任何有限种东西,都能编号。一个班级 45 名同学、一副棋盘 64 个格子、字表里 3500 个常用字——只要数量有限,就能依次发给它们不同的编号(0、1、2、3……),而任何编号都可以用 0/1 写出来,这只是个「数需要几位」的问题。文字、符号如此;图像的像素亮度、声音的采样幅度也一样——它们最终都是「从有限集合里挑一个」,都能编号。反过来说:两个状态之所以「够用」,是因为我们总能把世界拆成有限个候选的选择——这正是本节开头那句「信息可以被拆成无数个选择」的深层含义。
第二层:信息量 =「在多少个候选里做选择」。告诉你「今天的航班准点」,这句话的含金量取决于它排除了多少其他可能。若航班只有准点、延误两种结局,这一句相当于一次二选一(1 bit);若一天有 256 种可能的调度状态,说清其中一种就需要 8 bit 的选择量。候选越多,需要的 bit 越多——这就是 bit 能当「信息度量单位」的直觉:一条消息的信息量,就是它替你砍掉的不确定性。信息的数学理论(信息论)正是从这个直觉出发建立的,你以后会在通信类课程里与它正式相会。
第三层:无限的东西,先「量化」再用。真实世界里有连续量——温度 23.456…℃,小数永远数不完。工程上的做法叫量化(quantization):约定「只保留到小数点后两位」,于是无穷个可能值被裁剪成有限个档位(0.00、0.01、0.02……),档位有限,就能编号、能编码。代价是引入一点误差(23.456℃ 被记成 23.46℃),只要误差小于使用要求,这笔交换就划算——这是贯穿整个数字工程的「够用就好」哲学。
把三层合起来,就得到位数与状态数的通用关系:
用这个公式抽查几个日常数字:英文字母大小写加数字共 26+26+10 = 62 种,2⁶ = 64 ≥ 62,6 位就够;常用汉字约 3500 个,2¹² = 4096 ≥ 3500,12 位就能给每个常用字发一张专属「身份证」。声音、图像同理——先把连续量量化成档位,再编号。下面用工程视角把这套算法完整走一遍。
📐 例题 2 告警状态编码:位数、码点与冗余
某告警处理单元把设备状况分成 5 档:正常、提示(advisory)、注意(caution)、警告(warning)、危险(critical)。(1)至少需要几位 bit?(2)3 位编码实际用掉几个码点、剩余几个?工程上剩余码点怎么处理?(3)若后续版本把状态细分到 13 档,位数需要增加吗?
思路 位数只由「状态种类数」决定,与状态叫什么名字无关:找最小的 n 使 2ⁿ ≥ 5。然后数用掉的码点、算冗余,最后验证 13 档是否仍装得下。
解 第(1)问:2² = 4 < 5,不够;2³ = 8 ≥ 5,够——至少 3 位。第(2)问:3 位共 2³ = 8 个码点,用掉 5 个,剩 8 − 5 = 3 个。工程惯例是保留不分配,作为「未定义码」处理,并在协议里明确约定「收到未定义码按故障对待」,而不是随手挪作他用——语义一旦被两套设备理解不一致,就是事故隐患。第(3)问:13 档时 2³ = 8 < 13,3 位装不下,须升到 4 位(2⁴ = 16 ≥ 13)。这正是接口定义要标版本号的原因:位数一变,新旧设备的解释规则就不再一致。
答:至少 3 位;用掉 5 个码点、剩 3 个留作未定义码;细分到 13 档时必须升到 4 位。 ⚠ 易错点:「5 档」容易让人联想到「5 的二进制是 101」——位数只看 2ⁿ 与 N 的大小关系,与 N 的二进制写法无关;另外试探要从 2² 开始,别一上来就拍 2⁴。
顺手用几行代码把「位数—容量」关系打印出来,眼见为实:
import math
for n in (2, 3, 4, 6, 12):
print(n, "位可编码状态数 =", 2**n)
print("区分 5 种状态至少需要", math.ceil(math.log2(5)), "位")
运行结果:2 位 4 种、3 位 8 种、4 位 16 种、6 位 64 种、12 位 4096 种;区分 5 种状态至少需要 3 位——与手算完全一致。
模拟 vs 数字:连续与离散的分野
还有一个基础辨析必须在这里完成,因为它直接回答「为什么非要编码成 0/1」。物理世界的原始信号大多是模拟信号(analog signal):电压随时间连续变化,任何两个取值之间都还有无穷多个中间值,像水银温度计的液柱,可以停在任何一个高度上。而编码成 0/1 之后的信号叫数字信号(digital signal):任意时刻只允许「高」「低」两种取值之一,像楼梯台阶,非此即彼。
模拟信号细腻,但有个致命弱点:怕噪声,而且伤疤会累积。噪声(干扰)叠加在连续波形上后,与原信号浑然一体,无法分开;每放大一次、转发一次,失真就被忠实地复制并追加一遍,传得越远越「糊」。数字信号恰好相反:只有两态,噪声不越线就等于不存在。接收方只问「高于阈值还是低于阈值」,只要干扰没大到把高电平拖进禁区,判决就永远正确;判决之后还可以「再生」——输出一个崭新的、干净的方波,把路上沾的噪声全部抹掉。所以数字信号经得起千山万水:中继一百次,第一次和第一百次一样干净。
直观类比:模拟像手抄字帖——每描一遍,笔画就走样一点,抄十遍就面目全非;数字像盖章——盖一万次,每次都一样清晰,因为每一印都是从原样「重新判决」出来的。
放到工程现场,这个差别性命攸关。座舱里布满了电机、继电器、变频设备,电磁环境复杂恶劣;现代机载数据传输之所以全面采用数字编码,看中的正是「可再生、抗干扰」这一条。你以后遇到任何「要不要数字化」的讨论,核心权衡永远是它:用离散换连续,用可控的量化误差,换回抗噪声与可再生。
🧠 一句话记忆 信息 = 一连串二选一;bit 就是一次二选一;用两个状态,是因为「两个」最不容易出错。
1.3计算机的燃料:电到底是什么
现在看第二个问题:机器里「动」的是什么?答案是电。但要理解计算机,光知道「用电」不够,得知道电本身是什么。
一切从原子说起
我们周围的一切物质——铁、水、你的身体——都由原子组成。每个原子又由更小的粒子构成:
- 质子:带正电荷,待在原子中心。
- 中子:不带电,和质子一起组成原子核。
- 电子:带负电荷,在原子核外高速运动。
📖 底层原理:电荷和电子的关系 「电荷」是物质的一种基本属性,分正、负两种,同种相斥、异种相吸。电子带的就是「负电荷」。所谓「带电」,本质就是某个东西上的电子多了(带负电)或少了(带正电)。
电流与电压:电是怎么「流」起来的
在金属(比如铜)里,有一部分电子和原子核结合得很松,可以自由移动。这些「自由电子」就是电流的主角。
- 电流:电子定向移动,就形成了电流。电子不动,就没有电流;电子朝一个方向流动,电流就来了。
- 电压:是推动电子流动的「压力差」。就像水位差会让水流起来一样,电压差会让电子流起来。
反直觉的真相:电子走得慢,电却传得快
顺着「电流 = 电子流动」往下想,很容易得出一个错误图景:合上开关,电子从电源出发一路狂奔冲到灯泡。真相恰恰相反,而且出人意料——电子在导线里的定向移动慢得可怜。
自由电子在金属里本来就在一刻不停地乱撞热运动(乱撞的速度倒是非常快),但方向四面八方、互相抵消,净位移为零。加上电压后,所有电子在乱撞的同时整体向一个方向缓慢挪动——这个挪动速度叫漂移速度(drift velocity),在常见导线和常见电流下只有每秒零点几毫米的量级,比蜗牛还慢。如果真要等某个电子从开关一路跑到灯泡,得等上以小时计的时间。
那灯为什么「啪」地一下就亮?因为导线里早已充满电子,就像一整根水管里早已充满水。你在这一端推一下水,压力以压力波的速度传到另一端,另一端的水立刻就流出来——传得快的是「压力」,不是水分子本身。电的世界同理:合上开关的一瞬间,电场(推动电子的「力场」)以接近光速在整条回路里建立,于是导线上所有电子几乎同时开始挪动,灯立即亮。一句话记住这个区分:快的是信号(电场),慢的是介质(电子)。以后你接触传输延迟、通信速率相关的内容时,这个区分会反复出现。
约定也是工程的一部分:电流方向的小历史 你可能听说过「电流方向与电子实际运动方向相反」——没错。早期科学家还不知道电子的存在,规定「正电荷流动的方向叫电流方向」;后来发现金属里实际移动的是带负电的电子,方向恰好反了。但几百年的手册、公式、仪表都建立在旧约定上,于是工程界干脆将错就错:沿用「正电荷方向」为电流方向,并给每条支路先假设一个参考方向,计算结果是正说明实际方向与假设一致,是负就说明相反。这不是尴尬,而是工程的重要一课:约定无所谓「真」,只要求「一致」——编码、协议、接口标准,全是同一回事:先约定,后人人遵守。
📐 例题 3 1 安培电流,每秒有多少个电子通过?
电流的单位是安培(A):1 A = 1 库仑/秒,即每秒通过导体横截面的电荷量为 1 库仑(C)。已知单个电子的电荷量 e = 1.602×10⁻¹⁹ C。(1)1 A 电流对应每秒通过多少个电子?(2)机载设备信号线上的典型电流约 20 mA,又对应多少?
思路 总电荷量 ÷ 单个电子电荷量 = 电子个数。这是「总量 ÷ 单份量 = 份数」的除法,只是数字换成了科学计数法。
解 第(1)问:n = 1 ÷ (1.602×10⁻¹⁹) ≈ 6.24×10¹⁸ 个/秒。第(2)问:20 mA = 0.02 A,n = 0.02 ÷ (1.602×10⁻¹⁹) ≈ 1.25×10¹⁷ 个/秒。两问相除:6.24×10¹⁸ ÷ 1.25×10¹⁷ = 50,即 20 mA 的电子流量是 1 A 的五十分之一——电流按比例缩,电子数也按比例缩。
答:1 A 约对应每秒 6.24×10¹⁸ 个电子通过;20 mA 约对应 1.25×10¹⁷ 个/秒。 ⚠ 易错点:科学计数法除法中 10⁻¹⁹ 在分母上——除以 10⁻¹⁹ 等于乘以 10¹⁹,指数方向最容易翻车;另外 mA 换 A 要乘 10⁻³,20 mA 是 0.02 A 而不是 0.2 A。
这个数字大到什么程度?每秒 6.24×10¹⁸ 个电子,全世界约 80 亿人每人能分到近 8 亿个。可见「电流」根本不需要电子排队赶远路——只需要海量电子整体挪动一点点,宏观上就是安培级的电流。这也从侧面解释了电信号为什么能那么快:它从来不是在运「货」,而是在传「势」。
为什么计算机偏偏用电?
历史上有人用齿轮(机械计算器)、有人用水流,为什么最后的赢家是「电」?因为电有三个无与伦比的优势:
| 优势 | 说明 | 为什么重要 |
|---|---|---|
| 快 | 电信号以接近光速传播 | 每秒能做几十亿次运算 |
| 好控制 | 开关一开一关就能精确控制通断 | 正好对应「0/1」两个状态 |
| 好检测 | 「有电/没电」两个状态极易区分、抗干扰 | 几乎不会出错 |
工程的关键一步:把「有电/没电」变成精确的定义
「有电/没电」是入门的说法,工程上必须把它精确化——因为现实电路里没有绝对的「有」和「没」:电压是个连续量,会随电源波动、温度、元件个体差异和外界干扰起伏。如果只说「大概高就算 1」,两台设备各自理解,接在一起就是灾难。
工程界的解法干净利落:划阈值,留容限。以某类常见芯片的电平约定为例:接收方规定低于 0.8 V 一律判 0,高于 2.0 V 一律判 1,中间 0.8–2.0 V 是「不确定区」,设计规则要求任何正常工作的信号都不许停留在这里;输出方则承诺输出 1 时至少给到 2.4 V,输出 0 时至多给到 0.4 V。这样,从「至少 2.4 V」到「判 1 只需 2.0 V」之间天然空出 0.4 V,从「判 0 只要 0.8 V」到「至多 0.4 V」之间也空出 0.4 V——这段富余量就叫噪声容限(noise margin):信号在路上无论被干扰拖高还是压低,只要波动吞不掉这 0.4 V,判决就绝不会错。1.2 节说「数字信号噪声不越线就等于不存在」,这条「线」在工程上就是这样画出来的。
📐 例题 4 用电平约定判 0/1,并核算噪声容限
某接口电路约定:输出高电平 VOH ≥ 2.4 V,输出低电平 VOL ≤ 0.4 V;接收端判 1 阈值 VIH ≥ 2.0 V,判 0 阈值 VIL ≤ 0.8 V。现测得三路信号:U₁ = 2.6 V,U₂ = 1.5 V,U₃ = 0.2 V。(1)三路各判 0 还是 1?(2)高、低电平噪声容限各是多少?(3)若线路干扰可使电平偏移 ±0.3 V,会不会误码?
思路 (1)拿接收端阈值逐路比较,落在禁止区的不能判;(2)容限 = 输出承诺与接收判决线之间的空隙:高电平一侧是 VOH − VIH,低电平一侧是 VIL − VOL;(3)拿干扰幅度与容限比大小。
解 第(1)问:U₁ = 2.6 V ≥ 2.0 V,判 1;U₂ = 1.5 V 落在 0.8–2.0 V 禁止区,不能判——这是「非法电平」,按接口协议应按故障处理;U₃ = 0.2 V ≤ 0.8 V,判 0。第(2)问:高电平容限 = 2.4 − 2.0 = 0.4 V;低电平容限 = 0.8 − 0.4 = 0.4 V。第(3)问:最坏情形是输出端恰在承诺边界(2.4 V 或 0.4 V),干扰 0.3 V 把它拖到 2.4 − 0.3 = 2.1 V 或 0.4 + 0.3 = 0.7 V——仍在判 1 区(≥ 2.0 V)与判 0 区(≤ 0.8 V)之内,判决不变。0.3 V 小于容限 0.4 V,尚留 0.4 − 0.3 = 0.1 V 安全余量,不会误码。
答:2.6 V 判 1、1.5 V 为非法电平(禁止区,需按故障排查)、0.2 V 判 0;两个方向的噪声容限均为 0.4 V;±0.3 V 干扰小于容限,不会误判,还剩 0.1 V 余量。 ⚠ 易错点:最容易把「判 1 的线」记成 2.4 V——那是输出端的承诺,不是接收端的判决线;另外「1.5 V 就近判成 0」是典型错误——禁止区不判任何值,它本身就是故障信号。
这套「阈值 + 容限」的思路在机载环境尤其要紧。飞机是电磁环境相当恶劣的封闭空间:电机启动、继电器吸合、变频器工作,都会在线缆上感应出干扰脉冲。所以机载电子设备的接地、屏蔽、双绞、滤波有整套设计规范,它们的目标都一样:别让干扰吃掉噪声容限。你以后翻任何一份航电接口控制文件,看到「电平定义」一节,现在你已经知道它每一行数字在防什么。
🧠 一句话记忆 电 = 电子的流动;电压 = 推电子的压力差;电流 = 电子真的流动了。计算机用电,因为它快、好控制、好检测。
1.4最小的元件:用「开关」表示 0 和 1
我们把前两节合起来:信息的最小单位是「二选一」(bit),而电最擅长实现的物理状态是「通/断」。那么,什么东西能把「电的通断」和「0/1」连接起来?答案是——开关。
一个开关有两种状态:
- 闭合(通):电流能流过 → 记作 1
- 断开(断):电流不能流过 → 记作 0
核心思想 整个数字世界,说到底就是海量的「开关」在飞快地开和关。一个开关是一个 bit,千千万万个开关组合起来,就能表示文字、图片、声音、程序——一切信息。
开关连成网:「与」和「或」的雏形
单个开关管一个 bit,而开关真正的威力在于它们可以连成网络。看两种最基本的连法:
- 串联(一条线路上前后接两个开关):两个都闭合,灯才亮——这是逻辑里的「与」:条件 A 与条件 B 同时成立,结果才成立。
- 并联(两条支路并排,汇到同一个灯):两个中任何一个闭合,灯就亮——这是「或」:条件 A 或条件 B,任一成立即可。
这张对比图值得盯一会儿:同样是「A 闭合、B 断开」,串联电路里灯灭,并联电路里灯亮——连接方式本身就是逻辑。工程里的安全联锁,比如「舱门未关到位,就不允许某项操作执行」,落到硬件上正是这类开关组合:门控传感器(一个开关)与操作允许条件(另一个开关)串联——任一不满足,通路就断。第 3 章讲的「逻辑门」,本质就是把这两种连法做成标准件,再搭出任意的判断规则。你可以先把这张图记牢,它就是逻辑门电路的胚胎。
📐 例题 5 开关组编码:4 个拨动开关能记多少事?
某维护面板上有 4 个双位拨动开关,每个开关「向上」记 1、「向下」记 0,从左到右组成一个 4 位编码。(1)这套开关最多能表示多少种不同配置?(2)当前面板状态为「上上下下」,对应十进制编号是多少?(3)维护手册要求区分 20 种测试项,4 个开关够吗?
思路 (1)n 个独立双位开关 = n 个 bit,组合数 2ⁿ;(2)「上上下下」即 1010,二进制转十进制时各位权值从左到右是 8、4、2、1;(3)比较 2ⁿ 与 20。
解 第(1)问:2⁴ = 16 种。第(2)问:1010₂ = 1×8 + 0×4 + 1×2 + 0×1 = 10,即 10 号配置。第(3)问:16 种配置分 20 个测试项,不够;加一个开关:2⁵ = 32 ≥ 20,5 个开关才够。
答:最多 16 种;「上上下下」对应 10 号;4 个开关不够区分 20 项,需要 5 个(32 种)。 ⚠ 易错点:二进制各位权值从右往左是 1、2、4、8,别把最高位当成 1;「加一个开关」是容量翻倍(16 变 32),不是「加一种」。
当然,现代计算机里用的不是「用手拨」的机械开关,而是一种用电控制电的微型开关——晶体管。它的本质也是一个开关,只是小到指甲盖上能放几十亿个、快到每秒能开合几十亿次。晶体管是怎么做到「用电控制电」的,下一章专门讲——那是整个计算机硬件真正的地基。
📖 开关进化史:一部「越关越快」的历史 计算机的前身用过三种「开关」。第一种是继电器(relay):电磁铁吸合金属簧片实现通断——有机械部件,每秒只能开合几十到上百次,簧片会疲劳、触点会打火花。第二种是真空管(电子管):用真空中电子流的有无实现通断,甩掉了机械惯性,速度一下提升到每秒数万到数十万次;20 世纪 40 年代的早期计算机用了上万只真空管,整机占满一个大厅,散热像一座小锅炉房,而且真空管隔三差五坏一只,工程师每天上班的第一件事就是「找坏管子」。1947 年,第三种开关问世——晶体管(transistor):用半导体里的一小片电场控制导电与否,无机械触点、无真空、不烧灯丝,体积缩小到毫米以下,速度冲进每秒百万次以上。此后人们又把亿万只晶体管集成到指甲盖大小的芯片上。这条历史的主旋律只有一个:开关本身越来越快、越来越小、越来越可靠——计算机的每一次飞跃,本质上都是开关的一次飞跃。
工程现场:开关量无处不在
「开关 = bit」不只是原理,它就是航电现场最常见的信号类型,工程里叫离散量(discrete signal):舱门是否关到位、襟翼是否在某个卡位、扰流板是否收回——这些「非开即关」的状态,都是靠各类微型行程开关、接近传感器变成「通/断」电信号,汇入采集器读成 0/1。工程师约定「接地为有效」或「高电平为有效」来定义哪个电平代表「是」,采集端按约定解读——还是那句话:先约定,后人人遵守。
顺带埋个伏笔:机械开关有个恼人的小毛病叫触点抖动(bounce)——两片金属触点闭合的瞬间会像拍皮球一样弹跳几毫秒,电平在 0/1 之间抖好几下才稳定。工程上必须先「消抖」(硬件滤波或软件等它稳定),才能当作一次干净的 0→1 事件,否则一次按压会被误读成几十次。你以后亲手写程序读按键状态时会处理它——那时你就真正体会到,「物理世界的 0/1」和「逻辑上干净的 0/1」之间,还有一道小小的工程缝隙要填。
| 开关形态 | 通断机制 | 典型速度 | 典型短板 |
|---|---|---|---|
| 继电器 | 电磁吸合金属簧片 | 每秒几十~上百次 | 触点火花、机械磨损、抖动 |
| 真空管 | 真空中电子流的有/无 | 每秒数万~数十万次 | 体积大、发热凶、寿命短 |
| 晶体管 | 半导体导电与否受电场控制 | 每秒数十亿次 | 怕静电、怕过压过流 |
🧠 一句话记忆 开关 = bit = 0/1。计算机的最小元件就是开关,现代版本叫晶体管。
1.5三步曲,在「电」的层面意味着什么
现在,我们把 1.1 的「输入 → 处理 → 输出」放到「电」的层面重新看一遍,你会发现每一步都落到了实处:
| 环节 | 通俗说法 | 电的层面 |
|---|---|---|
| 输入 | 敲键盘、点鼠标 | 把真实世界的动作,转成一串「有电/没电」的电信号 |
| 处理 | 计算、判断 | 无数开关按规则飞快地通、断,对电信号做运算 |
| 输出 | 看到屏幕、听到声音 | 把电信号再转回人能感知的光、声 |
以你敲键盘上的「A」键为例,整个过程是:
- 你按下「A」键,键下面的电路被接通,产生一个「有电」的信号。
- 键盘内部的小芯片把这个信号翻译成一串 0 和 1(「A」的编码)。
- 这串 0 和 1 进入计算机,CPU 里的无数开关对它做处理。
- 处理结果再变成电信号送到屏幕,屏幕上就出现了「A」。
看,从你手指按下,到屏幕上出现字母,中间发生的全部事情,就是电信号在「通/断」的世界里流转、变换。理解了这一点,你就算摸到了计算机的地基。
把三步曲再拧一圈:三个关键角色
「按键 → 屏幕」这条链路还可以再往下拧一圈,拧出三个关键角色。它们是后续章节的主角,先在这里混个脸熟。
输入的关键动作是「转换」。真实世界的量大多是连续的:角度、温度、压力、位置。传感器先把它们变成连续的电量(比如压力变送器把液压压力变成 0–5 V 的电压),随后由模数转换器(ADC,Analog-to-Digital Converter)把这电压「切」成一串 bit。切口处必然产生量化误差——1.2 节讲过的道理在这里兑现;但从这一刻起,信息彻底进入数字世界:可以无损地存储、复制、传输,复制一万次后和原件分毫不差——这是模拟世界永远做不到的事。
处理的关键动作是「打拍子」。芯片里亿万个开关如果各开各的,就乱成一锅粥。实际的机制是所有开关都听一位总指挥——时钟(clock):每个节拍开始时,每个开关根据自己此刻的输入定好「下一拍我是通还是断」;节拍一响,全体现同步翻转,齐步进入下一个状态。就像大型乐团靠指挥的拍子整齐演奏——乐手(开关)再多,只要跟着拍子,出来的是音乐而不是噪音。芯片规格表上写的「主频」,说的就是这个拍子每秒响多少次。
输出的关键动作是「变回去」。bit 串最终要变回人能感知的东西:送屏幕,就是按数值控制每个像素发光;要驱动电机、作动器这类连续动作,则要经数模转换器(DAC,Digital-to-Analog Converter)把数字再变回连续电压。一次完整的「输入 → 处理 → 输出」,实际是在「模拟 → 数字 → 模拟」之间走了个来回——数字段是中转站,也是最可靠的那一段。
📐 例题 6 从按键到屏幕:一笔延迟账
某终端链路:键盘每 5 ms 扫描一轮按键;编码并通过接口传输约需 0.1 ms;主机处理按键事件需 0.3 ms;显示按 60 Hz 刷新,一帧 16.7 ms(处理结果必须等下一帧才能显示)。粗略估计从手指按下到字母出现在屏幕上的延迟。把它放在人对操控响应的感知门槛(约 100 ms)旁边看,说明什么?
思路 延迟 ≈ 各环节耗时之和。扫描环节按一轮计(上界估计);显示环节要等下一帧刷新。先求和,再与 100 ms 比较,并找出最大头。
解 总延迟 ≈ 5 + 0.1 + 0.3 + 16.7 = 22.1 ms。与感知门槛 100 ms 相比,只占约五分之一(100 ÷ 22.1 ≈ 4.5,门槛约为它的 4.5 倍),处在人感觉「即时」的范围内。再看构成:最大头是显示一帧的 16.7 ms,约占七成五;键盘扫描 5 ms 占第二——想再快,先优化显示刷新和扫描频率,而不是运算环节。
答:约 22.1 ms,属于「跟手」的范围;瓶颈在显示刷新而非运算。 ⚠ 易错点:60 Hz 对应一帧 1/60 秒 ≈ 16.7 ms,别把 60 Hz 误当 60 ms;求和时单位统一用 ms,0.1 ms 不是 1 ms。
scan, send, cpu, frame = 5.0, 0.1, 0.3, 16.7 # 单位:ms
total = scan + send + cpu + frame
print(round(total, 1)) # 22.1
print(round(100 / total, 1)) # 感知门槛约是它的 4.5 倍
运行输出 22.1 和 4.5——验证无误。这笔账的意义在于:数字世界里的每一分「快」,最终都能换算成毫秒。机载显示与控制回路的工程师算的正是这类账,这也是为什么时钟、刷新率这些参数值得较真。
最后把整章收拢成一句话:所谓计算机,就是用「可再生的两个电平」承载信息,用「按拍子同步翻转的开关网络」加工信息。往后 14 章讲的二进制、逻辑门、CPU、存储、总线、操作系统……全部长在这句话之上。
本章小结
- 计算机的本质是信息处理机器,遵循「输入 → 处理 → 输出」。
- 信息可以分解成一连串「二选一」,最小单位是 bit(binary digit)。
- 用「0/1」而不是「0–9」,是因为物理上两个状态最稳定、最不容易出错。
- 电的本质是电子定向移动(电流),由电压(压力差)推动;计算机用电,因为它快、好控制、好检测。
- 开关是计算机的最小元件:断=0、通=1;现代版本是晶体管。
- 信息必须依附载体,同一信息可在纸、声、电之间无损搬家;数据 + 解释规则 = 信息——这就是接口与协议存在的理由。
- 工程上用「阈值 + 噪声容限」把「有电/没电」精确化:≤0.8 V 判 0、≥2.0 V 判 1,中间留禁止区;容限之内干扰不致误判,数字信号因此可以逐级「再生」。
读完本章,你应该能……
- 用自己的话说清「信息」为什么能数字化,以及 bit 的含义和来历。
- 从原子(质子、中子、电子)讲到电流和电压,不卡壳。
- 说出计算机选「电」而非齿轮、水流的三个理由。
- 解释「开关 = bit = 0/1」这个等式。
- 把「输入 → 处理 → 输出」翻译成电信号层面的描述。
- 会算「区分 N 种状态至少需要几位 bit」,并说清 0/1 编码为什么能覆盖文字、声音、图像。
- 能讲出「电子漂移慢、信号传播快」的水管类比,并解释噪声容限如何护住 0 和 1。
思考题
1. 为什么计算机用「二选一」(0/1)而不是「十选一」(0–9)来表示信息?
提示:不是数学原因,是物理原因——两个状态(通/断、高/低)最稳定、最好区分、最抗干扰。
2. 用自己的话,分别解释「电流」和「电压」,并用「水」来类比。
提示:电流=电子流动(水流);电压=推动电子的压力差(水位差)。
3. 为什么说「开关」是计算机的最小元件?现代计算机里的「开关」叫什么?
提示:开关的通/断正好对应 1/0;现代版本是晶体管。
4. 从你按下键盘「A」到屏幕上出现「A」,中间在电的层面发生了哪几步?
提示:按键接通电路 → 编码成 0/1 → CPU 处理 → 电信号送屏幕。
5. 某机载告警系统要把故障细分为 13 类,至少需要几位 bit?
提示:找最小的 n 使 2ⁿ ≥ 13。2³ = 8 不够,2⁴ = 16 够——答案 4 位。顺手算算码点还剩几个(16 − 13 = 3 个),工程上它们该留作什么用?
6. 电子在导线里的定向漂移只有约每秒零点几毫米,为什么合上开关灯「立刻」就亮?
提示:水管早已充满水——导线里早已充满电子。传得快的是电场(信号),不是电子本身。快的是「势」,慢的是「介质」。
7. 为什么数字信号传得再远、中继再多也能「完好如初」,模拟信号却越传越失真?
提示:数字信号在每个中继点只需「高于/低于阈值」重新判决,判完即可输出崭新的干净方波——噪声被逐站清零;模拟信号每次放大都把噪声和信号一起放大,失真逐站累积。