01-数制与码制.md 9.5 KB


tags: [数电] type: note source_type: reconstructed created: 2026-08-15 updated: 2026-08-18

aliases: [进制, BCD码, 原码反码补码, 数制, 数字化]

数制与码制

[!note] 对象层 学完这篇,你能判断

  1. 十进制 ↔ 二进制 / 十六进制之间任意转换(含小数);
  2. 看一个 BCD 码(8421)能否一眼读出对应十进制数;
  3. 说出原码/反码/补码的区别,并用补码完成加减法;
  4. 区分"数制"(表达数值)与"码制"(编码信息)谁是谁。

用生活理解:十进制是我们的"日常语言",二进制是机器的"母语",十六进制是工程师的"速记符号"(4 位二进制合 1 位十六进制,缩写能力强)。补码则是把"减法"变成"加法"的巧计——就像"退 3 步"可以写成"前进 7 步再绕一圈"。


一、一句话本质

数制决定一个数怎么"进位";码制决定一个信息怎么"编码";带符号数的原反补三兄弟中,只有补码能让加减统一为加法、且 0 的表示唯一。


二、速查表(公式与结论)

2.1 各进制基数表

进制 基数 数码 进位规则 用途
十进制 10 0~9 逢十进一 日常
二进制 2 0,1 逢二进一 机器存储
八进制 8 0~7 逢八进一 历史遗留(Unix 权限)
十六进制 16 09, AF 逢十六进一 汇编/寄存器/地址

记忆:1 位十六进制 = 4 位二进制1 位八进制 = 3 位二进制——这是分组转换法的基础。

2.2 转换速查

转换 方法 例子
十进制 → 任意进制(整数) 除基取余,倒序排列 25→二进制:25÷2=12余1,12÷2=6余0,6÷2=3余0,3÷2=1余1,1÷2=0余1 → 11001
十进制 → 任意进制(小数) 乘基取整,正序排列 0.625→二进制:0.625×2=1.25取1,0.25×2=0.5取0,0.5×2=1.0取1 → 0.101
任意进制 → 十进制 按权展开求和 1011.1₂ = 8+0+2+1+0.5 = 11.5
二进制 ↔ 十六进制 以小数点为中心四位一组分组 11010110₂ → 1101 0110 → D6₁₆
二进制 ↔ 八进制 三位一组分组 11 010 110₂ → 326₈

2.3 常用码制速查

类型 说明
8421 BCD 有权码(8/4/2/1) 每 4 位二进制表示 1 位十进制,00001001 有效,10101111 非法
2421 BCD 有权码(2/4/2/1) 5 的补码对称:1000=4,1011=5
余 3 码 无权码 8421 码 +3,便于 BCD 加减运算
格雷码 无权码 相邻码仅 1 位变化,用于消除毛刺/编码器
ASCII 信息码 7 位编码 128 个字符

2.4 原码 / 反码 / 补码(n 位定点整数)

定义(以 n=4 位,-5 为例) 特点
原码 符号位 + 绝对值(1101) 直观但 0 有 +0/−0 两种表示
反码 正同原码;负=原码取反(1010) 0 仍有 ±0
补码 正同原码;负=反码+1(1011) 0 唯一(0000),减法转加法

核心规则:补码的补码 = 原码;n 位补码范围 −2ⁿ⁻¹ ~ +(2ⁿ⁻¹−1)。 例:−5 的补码:5=0101 → 取反 1010 → +1 = 1011 ✓


三、判别规则

  1. 转进制看方法:整数→除基取余倒排;小数→乘基取整正排;反向→按权展开。
  2. 8421 BCD 合法性1010~1111 出现即非法(BCD 每 4 位只到 9)。
  3. 有符号数运算:机器内一律用补码存储运算,溢出看最高两位进位是否一致(双高位法)。
  4. 选码:需要抗干扰单调变化 → 格雷码;需要显示/键盘 → BCD;需要通信文本 → ASCII。

四、易混对比

易混点 A 易混点 B 关键区别
数制(二进制) 码制(BCD) 二进制是完整数值系统;BCD 只是十进制数的"4 位一编码",1010 在二进制合法、在 BCD 非法
原码 补码 原码有 ±0、减法要借位;补码 0 唯一、可统一加减
8421 BCD 二进制 12 的 BCD 是 0001 0010(两位),二进制是 1100(一位数字表示 12)
乘基取整 除基取余 前者给小数、正序读;后者给整数、倒序读

五、典型例题(先想再翻)

  1. 转换:十进制 89 → 二进制与十六进制。 > 答:89÷2=44余1,44÷2=22余0,22÷2=11余0,11÷2=5余1,5÷2=2余1,2÷2=1余0,1÷2=0余1 → 1011001₂;四位分组 0101 1001 → 0x59。
  2. 补码运算:用 4 位补码计算 3 − 5。 > 答:3=0011;−5=1011;0011+1011=1110;1110 为补码 → 取反 1001 → +1=1010 → −2 ✓。
  3. 陷阱题:同学说"1010 是合法的 8421 BCD 码,代表十进制 10"。 > 答:错。BCD 每位最多 9,1010~1111 是非法码;十进制 10 的 BCD 应为 0001 0000。

六、完整知识点

6.1 数制的一般表示

任意进制数按权展开:(aₙ₋₁aₙ₋₂…a₀.a₋₁…a₋ₘ)ᵣ = Σ aᵢrⁱ,r 为基数,aᵢ 为 0~(r−1) 的数码。

6.2 为什么机器用二进制

  • 两态物理器件(高/低电平)天然实现 0/1;
  • 运算规则简单:只有"逢二进一";
  • 抗干扰强:信号只需区分两种电平。

6.3 补码的本质(数学视角)

对 n 位模 M=2ⁿ 系统,负数 x 表示为 M+x(模运算)。例 4 位:−3 = 16−3 = 13 = 1101₂ 的补码表示。因此 x−y = x+(M−y),减法变成加法,且进位自然溢出丢弃。

6.4 溢出判断(重要)

补码加法溢出 ≠ 进位丢失。判据:符号位进位 C₁ 与最高数值位进位 C₂ 异或为 1 则溢出。 例:4 位 7+1:0111+0001=1000 → 结果符号为负(−8),C₁=0, C₂=1 → 溢出 ✓。

6.5 格雷码生成

n 位格雷码 = n−1 位格雷码先正序补 0、再逆序补 1。应用:旋转编码器、异步时钟域跨域。

6.6 数字化:任何信息都能变回二进制(尚硅谷补充)

二进制不止能表达数字——现实中的信息都能"数字化",统一变成 0 和 1 位模式存储。

信息 数字化方法 关键指标 例子
文字 查字符编码表 ASCII 7 位/字符 内存中程序与数据都是位模式(0/1)
图片 像素化 + 像素数字化 分辨率、位深 800×600 = 480000 像素;RGB 三原色每色 1 字节(0~255,8 位深)
声音 采样 + 量化 采样率、位深 采样率 44100/48000Hz;位深 16/24bit
视频 连续图片+声音 + 有损压缩 帧率、压缩标准 H.264/H.265/AV1;约 25 帧/秒,利用视觉残留

关键概念:

  • 分辨率 = 图片横纵切分的份数(越高越清晰);
  • 位深 = 每个采样/颜色用多少位表示(8 位深 0255,16 位深 065535,位深越大越不易出"色阶/阶梯");
  • 二值图像最简单:5×5 图用 1 白 0 黑直接写成 25 个位;
  • 视频若"耿直地"把图片拼起来体积会非常大,所以用有损压缩(H.264/H.265/AV1)。

与本课联系:这正是"码制"的扩展——计算机只认识 0/1,一切模拟信息(文字/图像/声音/视频)都先经"编码"再存储运算,也是 [[08-AD与DA转换|数电 08]] 采样-量化思想的同源概念。


七、与 PCB 画图的关联

  • 芯片数据手册中的引脚号(如 D0~D7)、寄存器地址(0x4002 1000 风格)→ 十六进制速记是刚需。
  • 数码管/按键编码用 8421 BCD 或自定义编码 → 画原理图时决定编码器/译码器连接(对应 [[PCB学习笔记/04-电路基础-电路定理|PCB 笔记 04]] 与 [[04-组合逻辑电路|数电 04 组合逻辑]])。
  • 总线与地址线按位命名(A0、D7)→ 理解"位权"习惯。

来源:阎石《数字电子技术基础》第 1 章(数制和码制);尚硅谷《从零搭建计算机》第 1.2 节(数字化)