BCD码
1. 什么是BCD码
BCD码(Binary-Coded Decimal),用4位二进制数来表示1位十进制中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码
2. 表示形式
二进制 十进制
[0110] [6]
[0010 0010] [22]
[0100 0010 0010] [422]
依次类推,4位、5位...的十进制对应二进制表示,即4*4位、5*4位...二进制数,每4位表示一位十进制就是这个意思。
3. BCD码分类
-
8421码
因为4位二进制数表示1位10进制数,所以4位二进制的每一位分别代表8、4、2、1,即是 1000、0100、0010、0001。每一位“1”代表的十进制数称为这一位的权,因为每位的权是固定,所以8421码也是恒权码。 -
5421码
5421BCD码,是二-十进制代码(BCD码)的一种。 5421BCD码是一种有权码,有权BCD码就是四位二进制数中每一位数码都有确定的位仅值,若把这四位二进制码按权展开,就可求得该二进制码所代表的十进制数。例如:11 =》 1110
1110 = 15+14+12+10 = 5+4+2 = 11。
十进制数与5421BCD码:
[0 <=> 0000]
[1 <=> 0001]
[2 <=> 0010]
[3 <=> 0011]
[4 <=> 0100]
[5 <=> 1000]
[6 <=> 1001]
[7 <=> 1010]
[8 <=> 1011]
[9 <=> 1100] -
2421 BCD码
与5421基本相同,只是每一位的权值不同,2、4、2、1权值位1000、0100、0010、0001。一个很常用的编排规律就是:
0-4不采用最高位的“2”,5-9都采用最高位的“2”。
比如对于4而言,由于他在上面0-4的区间内,因此不启用最高位的2,所以4在这个条件下只能使用2421的0100对应,而不能使用2421的1010对应。尾部的2不能用,4的表示只能用0100,如果采用尾部的2,就会存在1010的两个表示。 -
余3码
余3码是由8421码加上0011形成的一种无权码,由于它的每个字符编码比相应的8421码多3,故称为余三码。余3码的特点:当两个十进制数的和是9时,相应的余3码的和正好是15,于是可自动产生进位信号,而不需修正。0和9,1和8,5和4的余3码互为反码,这在求对于模9的补码很方便。余三码是一种偏权码,是BCD码中的一种,偏权码的数值可由有权码的数值减去一个固定的偏离值得到。而余三码之所以叫做余三码,是因为如果用8421BCD码的权来计算余三码得到的数值是从3到12,比0到9每一个正好多3,故称为余三码
-
格雷码
1.自然二进制码转换为格雷码的方法自然二进制码转换成二进制格雷码,其法则是保留自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高 位相异或,而格雷码其余各位与次高位的求法相类似。
原理: 若二进制码表示为: B[N-1]B[N-2]…B[2]B[1]B[0];
相应地, 则二进制格雷码表示为: G[N-1]G[N-2]…G[2]G[1]G[0].
其中最高位保留: G[N-1] = B[N-1];
其他各位: G[i] = B[i+1] xor B[i]. (i = 0, 1, 2, …, n-2)
图示如下:
bin[3] bin[2] bin[1] bin[0] —二进制值 : 二进制+ 0 bin[3] bin[2] bin[1] ---右移值(二进制) gray[3] gray[2] gray[1] gray[0] ---对应的格雷码值
总结:格雷码的值只需要在原来的二进制的基础上右移一位再加上原来的二进制值即可得到。
-
格雷码转换为二进制码的实现方法
二进制格雷码转换成自然二进制码,其法则是保留格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为高位自然二进制 码与次高位格雷码相异或,而自然二进制码的其余各位与次高位自然二进制码的求法相类似。
原理: 若二进制格雷码表示为: G[N-1]G[N-2]…G[2]G[1]G[0];
相应地, 则二进制码表示为: B[N-1]B[N-2]…B[2]B[1]B[0].
其中最高位保留: B[N-1] = G[N-1];
其他各位: B[i-1] = G[i-1] xor B[i]. (i = 1, 2, …, n-1)
参考文献:
https://blog.csdn.net/gordon_77/article/details/79489548
图片资源:
https://blog.csdn.net/gordon_77/article/details/79489548