概述

官方工学老师·22 页·深入(追求细节与边界)·0 次浏览·2 天前
数字电路逻辑门二进制计算机组成

数字电子技术概述

看清一个开关如何经过逻辑门、运算器,一层层搭出一台能计算的机器

按 空格/→ 演示下一步

1 / 22 页

全部页面点击任意一页,跳回舞台从这页播放

数字电路逻辑门二进制计算机组成

数字电子技术概述

看清一个开关如何经过逻辑门、运算器,一层层搭出一台能计算的机器

1第 1 页 · 数字电子技术概述

什么是数字电子技术

你手机里存的一首歌,本质是一长串0101;黑胶唱片则是连续起伏的沟槽。同一段旋律,两种写法——区别就在于"信号是离散跳变的"还是"连续变化"的。

信号离散
信号只在有限个取值之间跳变,而不是连续变化
二进制表示
通常只用0和1两个符号,就能承载任意复杂的信息
逻辑门处理
通过与、或、非等布尔运算,对信息做加工和变换
抗噪容限
只要噪声不越过判定门限,结果就不受影响
楼梯与斜坡对应 →数字信号与模拟信号

楼梯每级高度固定,只能踩在固定档位;斜坡可停在任意高度,对应连续变化的模拟信号

2第 2 页 · 什么是数字电子技术

模拟信号 vs 数字信号

两者本质区别在「连续 vs 离散」,工程中却经常混在一起,让初学者分不清边界。

模拟信号
  • 时间与幅度都连续
  • 噪声线性叠加,无法分离还原
  • 精度由器件噪声底限决定
  • 直接对应真实物理量
数字信号
  • 时间离散 + 幅度分层
  • 用阈值判别,可再生中继
  • 精度靠增加位数线性提升
  • 便于存储、处理、远距离传输
模拟贴近物理真实,数字便于工程实现;现代系统普遍采用「模拟采集 → 数字处理 → 必要时还原」的协作架构。
3第 3 页 · 模拟信号 vs 数字信号

数字技术的核心优势

上一页我们看到,数字信号只用 0 和 1 两种离散电平,模拟信号却是连续曲线。看似'粗糙'的数字为什么反而胜出?因为它有三个核心优势。

抗干扰
中间有宽阔的判断死区,噪声不越过阈值就不影响识别
易存储
只需记录 0/1 序列,可无损复制无数次,介质任意更换
可编程
硬件固定不变,写入不同软件就能实现不同功能
复印件 vs 手抄本对应 →数字 vs 模拟的复制

手抄每代走形,复印件代代相同——这就是抗干扰的威力

4第 4 页 · 数字技术的核心优势

什么是数制

前几页聊了'信号'和'优势',但电路要真正传信息还差一步:怎么用一串0和1表示不同数值?这就要说到'数制'——也就是人类计数时'怎么进位、按什么基数打包'的规矩。

基数 (Radix)
进制'打包'的尺寸——十进制满10进位,基数就是10
进位 (Carry)
本位符号用尽后向左进一,本位归零从最低符号重新计数
位权 (Weight)
同一符号在不同位置的倍数,十进制个位×1、十位×10
符号集 (Digits)
基数为N的数制只能用0~N-1共N个不同符号
时钟的秒→分→时对应 →进位与基数

60秒满了归零、分+1,这就是基数=60的进位;秒→分→时之间还藏着位权缩放

N=i=0k1diBiN = \sum_{i=0}^{k-1} d_i \cdot B^i
5第 5 页 · 什么是数制

常见数制一览

四种常用数制横向并列,每个分支给出基数、符号集和典型场景,一眼看清各自的角色分工。

图解渲染中…
a1基数=进位权值,十进制按10的幂次展开b2二进制仅0和1,正好对应电平低/高两种状态c3八进制=把3个二进制位压成1位d2十六进制补A-F,代表10到15共6个值
6第 6 页 · 常见数制一览

进制的表示规则

上一页我们认识了什么是数制,也见过了二进制、八进制、十六进制的长相。但不管哪一种数制,背后都遵循同一套规则——数码、基数、位的权重,三件事缺一不可。

数码
每个进制只能用固定几个符号:十进制 0~9,二进制 0~1,十六进制 0~9 加 A~F。最大数码始终等于基数减 1。
基数
该进制所允许的数码总数,也就是「逢几进一」中的那个数。十进制 R=10,二进制 R=2。
位的权重
从右往左,每位权重是基数的幂次:第 0 位 R⁰,第 1 位 R¹,依次类推,越往左权重越大。
通用展开式
任何数 = Σ(数码 × 基数^位置)。把每位数码乘以该位权重再求和,就能还原成十进制数值。
人民币面额组合对应 →位的权重

1 元、10 元、100 元——每升一档乘以 10,权重就是基数的幂次

NR=i=mk1diRiN_R = \sum_{i=-m}^{k-1} d_i \cdot R^i
7第 7 页 · 进制的表示规则

十进制转二进制

用除2取余法把十进制整数转二进制,关键在余数倒序。

1
原数除2
第一次除以2,余数就是二进制最低位
2
商再除2
用所得商作为新被除数,继续除以2取余
3
直到商为0
反复执行,直到商不能再除(商为0)为止
4
余数逆序
将所有余数从后往前排列,即得二进制结果
8第 8 页 · 十进制转二进制

二进制转十进制

按权展开求和:把二进制的每一位按位置权重展开,再把结果加起来。

1
标位权
整数从右往左标2⁰、2¹…;小数从左往右标2⁻¹、2⁻²…
2
乘位值
用每位数字(0或1)乘以对应位权
3
累加求和
把所有乘积相加,得到十进制数
9第 9 页 · 二进制转十进制

二进制↔八进制转换

三位分组的快速转换

二进制↔八进制转换
三位分组的快速转换
10第 10 页 · 二进制↔八进制转换

二进制↔十六进制转换

图分上下两路:上行二进制→十六进制,下行反向。核心都是「4 位二进制 = 1 位十六进制」。

图解渲染中…
a40000-1001 对应 0-9,1010-1111 对应 A-Fa5高位组在结果左侧,低位组在右侧,不可颠倒b3每位十六进制独立查表,固定展开为 4 位二进制
11第 11 页 · 二进制↔十六进制转换

四大进制横向对比

四种进制各司其职——为啥机器只认二进制,工程师却偏爱十六进制?

紧贴二进制阵营
  • 位权都是 2 的幂,与二进制零成本互转
  • 二进制对应电路状态,八进制是 3 bit 压缩
  • 硬件、协议实现、底层位操作都靠它
  • 位数一长人眼就读不下去
面向人类阵营
  • 十进制需经二进制中转;十六进制紧贴 4 bit
  • 十进制是日常默认;十六进制是字节级简写
  • 日常生活、调试输出、UI 颜色都用它
  • 十进制无法直接对位 bit
机器底层用二进制,调试看十六进制,日常算十进制;八进制已基本被十六进制替代。
12第 12 页 · 四大进制横向对比

什么是码制

前面我们用二进制做完了加减乘除。但让你用 0/1 表示字母「A」、负数「-5」、甚至「这一段传输没出错」呢?这就要靠码制——给 0/1 串约定含义的翻译表。

码制的本质
二进制位串到特定信息的翻译约定
与数制的区别
数制管「怎么计数」,码制管「怎么把信息编成 0/1」
常见码制
BCD、格雷码、原码/反码/补码、ASCII 等
核心特征
收发双方必须遵守同一规则,否则就是「乱码」
摩尔斯电码对应 →码制

点划组合代表字母;码制就是给 0/1 组合赋予含义的规则

13第 13 页 · 什么是码制

BCD码详解

码制回答的是'怎么用二进制表示十进制'。最直观的想法:每位十进制单独用4位二进制编码,再拼起来——这正是BCD码的核心思路。

8421码
最常用BCD,4位二进制的位权从高到低为8、4、2、1
逐位拼接
多位十进制数,每位(0-9)独立映射为4位二进制后直接拼接
禁用码区
1010~1111共6种组合BCD不允许出现,可用作检错
vs纯二进制
十进制25:BCD=00100101(8位),纯二进制=11001(5位)
酒店房号对应 →BCD编码

房号'1208'写成BCD是0001 0010 0000 1000,每位独立编码

D=8b3+4b2+2b1+1b0,bi{0,1}D = 8b_3 + 4b_2 + 2b_1 + 1b_0, \quad b_i \in \{0,1\}
14第 14 页 · BCD码详解

8421码 vs 5421码 vs 余3码

都是BCD码家族成员,但有权无权差很多,自补特性决定工程取舍。

8421码
  • 有权码:位权8-4-2-1从高到低固定
  • 直接对应:十进制数即为其二进制值
  • 无自补:取反不能得到对9的补码
  • 最常用:输入、输出、存储电路首选
余3码
  • 无权码:各位没有固定权值
  • 偏移生成:8421码基础上加0011(余3)
  • 自补特性:逐位取反即得对9的补码
  • 工程价值:减法化为加法,电路更简
通用选8421码;BCD加减法用余3码(自补省硬件)。5421码(权5-4-2-1)因编码不唯一已少用。
15第 15 页 · 8421码 vs 5421码 vs 余3码

格雷码的转换规则

左右节点为二进制与格雷码,两条边对应正反向转换公式(最高位相同,其余位异或)。

图解渲染中…
a1普通二进制码,从最高位Bn-1到最低位B0b1格雷码:相邻编码只差1位,更可靠
16第 16 页 · 格雷码的转换规则

格雷码的工程应用

上一页我们学会了格雷码的转换规则——相邻码只有一位不同。看着像数学游戏,其实是为了解决工程上一个致命问题:模拟量转数字量时,多位同时跳变会读到错误值。

二进制跳变的隐患
如 0111→1000 一次跳变 4 位,中间任何瞬态都是错误码
物理无法绝对同步
光电管、机械触点响应速度有差异,永远做不到同一时刻翻转
格雷码的容错原理
一次只变 1 位,瞬态最多读到相邻值,误差 ≤1 LSB
典型应用场景
光电编码器、逐次逼近型 ADC、旋转变压器等模数转换场合
多人抢跑 vs 接力赛对应 →二进制跳变 vs 格雷码跳变

抢跑反应有快有慢,中间状态混乱;接力赛一人一棒,永远只一人在动,最多差一棒

17第 17 页 · 格雷码的工程应用

ASCII码与字符编码

python

用 Python 看字符背后的数字:ord/chr 互转,并用格式说明符把同一字符同时按十进制、十六进制、二进制打印。

代码高亮加载中…

高亮行展示字符↔编码双向映射:ord 把字符变数字,chr 反向;f-string 的 :3d/:02X/:08b 把同一数字按十/十六/二进制同时打印——这就是字符在数字系统中的表示。

18第 18 页 · ASCII码与字符编码

常见码制应用场景对比

BCD和ASCII名字都带'码',一个管数字显示,一个管字符处理,场景完全不同。

BCD码
  • 编码对象:十进制数字0~9
  • 典型应用:数码管、电子表显示
  • 主要优势:人机交互直观,免转换
ASCII码
  • 编码对象:字母、数字、控制符
  • 典型应用:键盘输入、文件存储
  • 主要优势:跨设备统一字符标准
给人看的数字选BCD;给机器读的字符选ASCII。
19第 19 页 · 常见码制应用场景对比

数字电子基础要点回顾

  • 转换本质是位权在不同基底下的重新分配
  • 进制选择是密度、运算与硬件的三方权衡
  • 码距是衡量码制抗干扰能力的硬指标
  • BCD守人机界面,格雷码守状态机
  • ASCII的128字符上限是历史偶然,非技术必然
延伸主题:逻辑门与布尔代数组合逻辑电路设计触发器与时序电路入门
20第 20 页 · 数字电子基础要点回顾

核心概念自测

点击作答

同一比特串'1010',在二进制中代表十进制10,在8421BCD码中却属非法。这种'同形异义'现象,最本质地说明了:

21第 21 页 · 核心概念自测

课后思考

先独立思考,再对照参考答案。三个问题分别指向:核心原理、工程应用、思维边界。

1为什么数字电路几乎都用二进制,而不是直接采用我们熟悉的十进制参与运算?

参考答案二进制只需稳定区分两种电平(高/低),电路实现简单、抗干扰强;十进制需要十种精确电压等级,现有工艺难以保证长期稳定地区分。核心思路:物理实现的"易"与"难"。

2如果让你设计一台旋转编码器来检测机械角度,你会选二进制还是格雷码?为什么?

参考答案选格雷码。相邻角度位置只差 1 位,格雷码每次只翻 1 位,切换瞬间不会因多位同时跳变产生"虚假中间码";二进制容易在翻转瞬间读到非法状态。关键提示:相邻位变化数决定了可靠性。

3模拟信号的"连续平滑"看似优于数字信号,那现代通信系统为何几乎全部走向数字化?这条边界究竟在哪里?

参考答案模拟信号易被噪声累积污染,长距离传输会被噪声"淹没";数字信号可通过再生中继随时"洗干净"。但采样与量化必有信息损失。边界在传输距离、噪声环境与可容忍失真之间的权衡。

22第 22 页 · 课后思考