分析日常生活中接触到的数字,无非有两种类型的数字:一种数字描述的是量的大小或多少,如路长40km、体重40kg等;另一类数字不表示量的大小或多少,而是代表某个事物的代码,如运动员的编号、学生的学号等。为了便于记忆和处理,在编制代码时总要遵循一定的规则,这些规则就叫做码制。
在数字系统中对各类信息进行处理时,总是先将这些信息用一定位数的二进制代码表示,然后再对这些二进制代码进行处理。因此,为了便于机器识别,必须把十进制数的各个数码用二进制代码表示出来,形成相应的二进制代码,也叫二-十进制代码,简称BCD(Binary Coded Decimals)码。
根据不同的编码规则,有不同的BCD码。几种常用的BCD码如表1所示。
表1 几种常见的 BCD代码
编码种类 十进制数码 |
8421 码 | 2421 码 | 5211 码 | 余 3 码 | 余 3 循环码 |
0 | 0000 | 0000 | 0000 | 0011 | 0010 |
1 | 0001 | 0001 | 0001 | 0100 | 0110 |
2 | 0010 | 0010 | 0100 | 0101 | 0111 |
3 | 0011 | 0011 | 0101 | 0110 | 0101 |
4 | 0100 | 0100 | 0111 | 0111 | 0100 |
5 | 0101 | 1011 | 1000 | 1000 | 1100 |
6 | 0110 | 1100 | 1001 | 1001 | 1101 |
7 | 0111 | 1101 | 1100 | 1010 | 1111 |
8 | 1000 | 1110 | 1101 | 1011 | 1110 |
9 | 1001 | 1111 | 1111 | 1100 | 1010 |
权 | 8421 | 2421 | 5211 |
8421码是BCD码中最常用的一种。在这种编码方式中每一位的1都代表一个固定的值,从左向右分别为8、4、2、1,它们称为每一位的权,因为每一位的权都是保持不变的,所以8421码是一种恒权代码。把8421码中所有1所在位的权值相加得到的结果就是该代码所代表的十进制数。因此,8421码的编码规则遵循加权和的公式。
2421码也是一种恒权代码,从左向右各位的权依次为2、4、2、1.从表4-1-1中可以看出,0和9、1和8、2和7、3和6、4和5的2421码互为反码,所以利用2421码可以方便地求十进制数的补码。
5211码也是一种恒权代码,从左向右各位的权依次为5、2、1、1。利用该代码可以方便地组成分频器。
余3码的编码规则与前面3种编码不同,每一位的1在不同的代码中并不代表固定的数值,因此称为变权代码。从表4-1-1中可以看出,如果把每一个余3码看做一个4位二进制数,则它的数值比它所表示的十进制数多3,故将这种代码叫做余3码。利用余3码也可以方便地求十进制数的补码。
余3循环码也是一种变权代码,其编码的特点是相邻的两个代码之间仅有一位的状态不同。