十进制数的编码
BCD码(Binary Code Decimal,二进制编码的十进制数):4位二进制数组合出16种代码,使用其中10种状态即可表示数字0~9。由于16种状态并没有被全部使用,BCD码也有多种。下面是常见的几种BCD码。
十进制数 | 8421码 | 2421码 | 余3码 | Gray码 |
---|---|---|---|---|
0 | 0000 | 0000 | 0011 | 0000 |
1 | 0001 | 0001 | 0100 | 0001 |
2 | 0010 | 0010 | 0101 | 0011 |
3 | 0011 | 0011 | 0110 | 0010 |
4 | 0100 | 0100 | 0111 | 0110 |
5 | 0101 | 1011 | 1000 | 1110 |
6 | 0110 | 1100 | 1001 | 1010 |
7 | 0111 | 1101 | 1010 | 1011 |
8 | 1000 | 1110 | 1011 | 1001 |
9 | 1001 | 1111 | 1100 | 1000 |
8421码
即自然码,各个数位的权值分别为8、4、2、1,不能和二进制表示数混淆。例:十进制数39,8421码为0011,1001,二进制值为100111B。
2421码
各个数位权值分别为2、4、2、1,它是对9的自补码。3即0011,6即1100,两数互为位取反关系。十进制运算中采用自补码可以简化电路。不允许出现0101~1010,这些是非法码。
余3码
无权码,是在8421码基础上加3(0011)得到码值,也是一种对9的自补码,不允许出现0000~0010和1101~1111,这些事非法码。
Gray(格雷)码
格雷码方案很多。优点:可以避免计数发生中间错误,因而也被称为可靠性编码。无权码,变化到相邻的值时只有一个二进制位状态改变,首尾两个数的Gray码也只有一个位不同,因而也称为循环码。6个非法码视方案而定。
2.4.2十进制数串
1.非压缩的十进制数串
即对单个数进行BCD编码后拼接成的串,一个字节存放一个十进制数或符号的ASCII码。一个数串占用连续的多个字节。主要应用于非数值的处理,不便于计算。
2.压缩的十进制数串
一个字节存放两个十进制数,节省空间,方便计算。一个压缩的十进制数串占用连续多个字节,每个数字占用半个字节,常用8421码表示,符号位占用半个字节,存放在最低数值位之后,通常用CH表示正,DH表示负。规定数字个数与符号位之和要为偶数,和为奇数时在最高值位之前补0(0000)。
例:+123表示为0001,0010,0011,1100;-2648表示为0000,0010,0110,0100,1000,1101。