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码的自补特性。自补码的特性简化了减法运算器的设计。