1513 字
8 分钟
数制、编码与逻辑门

复习#

核心问题:

  • 数字电路与模拟电路
  • 二进制、十进制、十六进制
  • BCD码
  • *格雷码的定义与二进制 -> 格雷码
  • 原码、反码、补码
  • 逻辑门:基本、三态门(TS)、OC门

Q&A#

数字电路与模拟电路的定义和区别
二进制、十进制、十六进制之间的转换
BCD码的编码与表示方法
*格雷码的定义与二进制 -> 格雷码
原码、反码、补码的定义与相互转换
逻辑门:基本、三态门(TS)、OC门,是什么?怎么画?有什么用?


一、基础概念#

电源负端接地#

电源负端接地,电位为 0V0V,作为参考地(GND)。电路中所有节点的电压都是相对于这个参考地来测量的。

核心要点

接地的本质是定义一个零电位参考点,而非”电流流向地”。电流回到电源负端,接地只是让负端电位固定为 0。

数字电路 vs 模拟电路#

对比项模拟电路数字电路
信号连续变化(如正弦波)离散(0 和 1)
抗干扰弱,噪声会叠加在信号上强,只需区分高低电平
精度受元器件限制可通过增加位数提升
典型应用放大器、滤波器计算机、计数器、存储器

二进制位权与运算#

位权: 二进制数中每一位的权值为 2n−12^{n-1}(从右往左,第 nn 位)。

(1011)2=1×23+0×22+1×21+1×20=(11)10(1011)_2 = 1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = (11)_{10}

二进制运算:

  • 加法:1+0=11+0=1,0+1=10+1=1,0+0=00+0=0,1+1=101+1=10(进位)
  • 减法:0−1=10-1=1(借位)
  • 乘法:类似十进制,1×1=11 \times 1 = 1,其余为 0
  • 除法:移位 + 减法

不同进制转换#

二 → 十: 按位权展开求和。

十 → 二: 除 2 取余,逆序排列。

11 ÷ 2 = 5 ... 1
5 ÷ 2 = 2 ... 1
2 ÷ 2 = 1 ... 0
1 ÷ 2 = 0 ... 1
逆序读:1011

二 ↔ 十六: 每 4 位二进制对应 1 位十六进制。

(1011  0110)2=(B6)16(1011\;0110)_2 = (B6)_{16}

二、编码方式#

BCD 码(8421 码)#

用 4 位二进制表示 1 位十进制数字,权值依次为 8,4,2,18, 4, 2, 1。

十进制0123456789
BCD0000000100100011010001010110011110001001
注意

BCD 码只用 0000∼10010000 \sim 1001(0~9),1010∼11111010 \sim 1111(A~F)在 BCD 中无效。BCD 码不是纯二进制,(19)10(19)_{10} 的 BCD 是 0001  10010001\;1001,而非 (10011)2(10011)_2。

*格雷码(Gray Code)#

相邻两个数之间只有一位发生变化的编码,常用于减少多位同时跳变带来的毛刺和竞争冒险。

十进制二进制格雷码
0000000
1001001
2010011
3011010
4100110
5101111
6110101
7111100

二进制 → 格雷码转换: 最高位不变,之后每一位 Gi=Bi⊕Bi+1G_i = B_i \oplus B_{i+1}(前一位异或当前位)。

原码、反码、补码#

以 8 位有符号整数为例,最高位为符号位(0 正 1 负):

编码+5-5说明
原码0000010110000101直接表示符号+绝对值
反码0000010111111010负数:符号位不变,其余取反
补码0000010111111011负数:反码 + 1
核心要点
  • 计算
    • 正数:原码 = 反码 = 补码
    • 负数:补码 = 反码 + 1
  • 计算机中统一使用补码存储有符号整数,这样加法和减法可以用同一套电路完成
  • 补码的补码 = 原码(可用来求原码)
为什么用补码

补码的本质是模运算。以 8 位为例,模为 28=2562^8 = 256,−5-5 的补码就是 256−5=251=(11111011)2256 - 5 = 251 = (11111011)_2。

这样 5+(−5)=00000101+11111011=1  000000005 + (-5) = 00000101 + 11111011 = 1\;00000000,溢出位丢弃后为 0,加法电路直接搞定减法。

常见错误
  • 0 的补码只有一个:0000000000000000(不像原码有 +0 和 -0)
  • −128-128 的补码是 1000000010000000,它没有对应的原码和反码(8 位原码范围是 −127∼+127-127 \sim +127)

三、逻辑门#

基本逻辑门#

门表达式真值规则符号
与 (AND)Y=A⋅BY = A \cdot B全 1 才 1∧\wedge
或 (OR)Y=A+BY = A + B有 1 即 1∨\vee
非 (NOT)Y=A‾Y = \overline{A}取反¬\neg
与非 (NAND)Y=A⋅B‾Y = \overline{A \cdot B}与的否定↑
或非 (NOR)Y=A+B‾Y = \overline{A + B}或的否定↓
异或 (XOR)Y=A⊕BY = A \oplus B不同为 1⊕\oplus
同或 (XNOR)Y=A⊕B‾Y = \overline{A \oplus B}相同为 1⊙\odot
核心结论
  • 与非门(NAND)和或非门(NOR)是万能门,可以组合出任意逻辑函数
  • 与非门 = 与 + 非,或非门 = 或 + 非

三态门(TS 门)#

三态门在普通逻辑门的基础上增加了一个使能端(EN),输出有三种状态:

EN输出
1正常逻辑输出(0 或 1)
0高阻态(Z)
核心要点

高阻态(High-Z)不是高电平也不是低电平,而是电气断开状态,相当于该输出端与总线断开。

这正是三态门能用于总线传输的关键:多个器件共享一条总线,通过 EN 控制谁在输出,同一时刻只有一个器件使能,其余处于高阻态,避免冲突。

📝 待插图 - 等课件

画总线结构图:多个三态门挂在同一条总线上,每个 EN 由控制器控制,同一时刻只有一个 EN=1,其余 EN=0(高阻态)。

双向传输: 通过两组方向相反的三态门 + EN 控制器,可以实现总线上双向数据传输:

  • EN=1 时,数据从 A → B 传输
  • EN=0 时,数据从 B → A 传输
📝 待插图 - 等课件

画双向传输电路:两个三态门反向并联在 A、B 之间,各自 EN 由控制器反相控制。

OC 门(集电极开路门)#

OC 门的输出级晶体管集电极开路,需要外接上拉电阻才能输出高电平。

核心要点
  • OC 门输出低电平时,晶体管导通,输出 = 0
  • OC 门输出高电平时,晶体管截止,输出由上拉电阻拉高为 1
  • 多个 OC 门输出端可以线与(Wire-AND):直接连在一起,只要有一个输出低,总输出就为低
注意

OC 门必须接上拉电阻,否则输出高电平时是悬空(浮空)状态,逻辑不确定。

📝 待插图 - 等课件

画 OC 门电路:内部晶体管集电极开路,外部接上拉电阻到 Vcc,再画多个 OC 门线与的连接方式。

数制、编码与逻辑门
https://entropy.lighterever.com/posts/数制、编码与逻辑门/
作者
Lighterever
发布于
2026-09-13
许可协议
CC BY-NC-SA 4.0