Skip to content

2.4 十进制数的编码 (BCD码)

本节介绍用二进制编码来表示十进制数的方法,主要用于需要精确表示十进制小数(如金融计算)或与人交互频繁的场合。

核心概念

1. BCD码 (Binary-Coded Decimal)

  • 定义:用4位二进制数来表示1位十进制数 (0-9)。
  • 由于4位二进制可以表示16种状态,而十进制数只有10个,因此有6种状态是冗余或非法的。

2. 常见的BCD编码

  • 8421码 (NBCD - Natural BCD)

    • 特点:是一种有权码,4个位的位权从高到低分别是8, 4, 2, 1。
    • 编码:与二进制的前10个数相同 (0000 - 1001)。
    • 非法码:1010 ~ 1111 (共6个)。
    • 运算:进行二进制加法后,如果和大于9或产生进位,需要加6 (0110) 进行修正。
  • 2421码

    • 特点
      • 有权码,位权为2, 4, 2, 1。
      • 对9的自补码。一个数的2421码,按位取反后,就是其对9的补数(9-X)的2421码。这在十进制减法中很有用。
      • 例如:3的2421码是 0011,对9的补数6的2421码是 1100
    • 非法码:0101 ~ 1010 (共6个)。
  • 余3码

    • 特点
      • 是一种无权码
      • 由8421码加上 0011 形成。
      • 也是对9的自补码
    • 运算:两个余3码相加,如果没有产生进位,则结果减3;如果产生进位,则结果加3。

易考点

  • 8421码的表示和加法修正是重点。要清楚为何要加6修正(因为二进制逢16进位,十进制逢10进位,差值为6)。
  • 了解2421码和余3码的自补特性。自补码的特性简化了减法运算器的设计。