BCD码(Binary-Coded Decimal)
使用4个bit的二进制表示一个十进制数
8421码(有权码)
该码将四位二进制的权值分布为8、4、2、1。
如表所示,表示的十进制数为8A + 4B+ 2C +D:
8 | 4 | 2 | 1 |
---|---|---|---|
A | B | C | D |
下面给出0~9如何被一个4bit的二进制表示:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 |
使用该码表示32458这个数,就为:0011 0010 0100 0101 1000
若两个相加后不在表中,8421码在1010~1111没有定义的。
这里需要加6来进一位。
例如:5 + 8 =13:0101 +1000 = 1101
该数加 6 :1101+ 0110 = 0001 0011为1 3
余三码(无权码)
在8421码的基础上加(0011)2,也就是加3。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 |
使用该码表示32458这个数,就为:0011 0010 0100 0101 1000
2421码(改变权值定义)
该码将四位二进制的权值分布为2、4、2、1。
如表所示,表示的十进制数为2A + 4B+ 2C +D:
2 | 4 | 2 | 1 |
---|---|---|---|
A | B | C | D |
该码的数值表示为:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 |
可以看到大于等于5的二进制数,第一位必须为1,这样可以有效防止使用另一种表示带来的冗余。