BCD码
十进制数用二进制编码的形式,通过专门的十进制数运算指令进行处理。计算机中有专门的逻辑线路在BCD码运算时使每4位二进制数按十进制进行处理。
每位十进制数的取值可以是0-9这十个数之一,因此,每一个十进制数位必须至少由4位二进制位来表示。而4位二进制位可以组合成16种状态,去掉10种状态后还有6种冗余状态,所以从16种状态中选取10种状态来表示十进制数位0-9的方法很多,可以产生多种BCD种。
8421码的映射关系:

4个二进制位 ------>16种不同的状态
BCD码值使用其中10种 ------>不同的映射方案
注:0000-1001分别对应0-9,进行加法后若超出该范围,则需+0110进行修正(强制向高位进1)
余3码:8421码+(0011)2(0011)_2(0011)2

2421码:改变权值定义

2、4、 2、 1分别对应,每一位的权值
表示0-4时最高位为0,表示5-9时最高位为1
奇偶校验码
几个简单的概念:
码字:由若干位代码组成的一个字
两个码字间的距离:将两个码字逐位进行对比,具有不同的位的个数
码距:一种编码方案可能有若干个合法码字,各合法码字间的最小距离
当码距d=1时,无检错能力;当d=2时,有检错能力;当d>=3,若设计合理,可能具有检错、纠错能力。
奇偶校验码
奇校验码:整个校验码(有效信息位和校验位)中“1”的个数为奇数
偶校验码:整个校验码(有效信息位和校验位)中“1”的个数为偶数

例:给出两个编码1001101和1010111的奇校验码和偶校验码。
设最高位为校验位,余7位是信息位,则对应的奇偶校验码为:
奇校验:11001101 01010111
偶校验:01001101 11010111
偶校验的硬件实现:各信息进行异或(模2加)运算,得到的结果即为偶校验位
⊕:异或(模2加)
0⊕0=0
0⊕1=1
1⊕0=1
1⊕1=0
求偶校验位:
1⊕0⊕0⊕1⊕1⊕0⊕1=0
1⊕0⊕1⊕0⊕1⊕1⊕1=1
进行偶校验(所有位进行异或,若结果为1说明出错):
0⊕1⊕0⊕0⊕1⊕1⊕0⊕1=0
海明校验码
偶校验:1010 ->01010,能发现奇数位错误,但无法确定是哪一位出错。
海明码设计思路:将信息位分组进行偶校验 ->多个校验位 ->多个校验位标注出错位置
信息位:n
校验位:k ------->2^k种状态
信息位+校验位:n+k
——————> 2^k>=n+k+1
其中n+k位中任何一位都可能出错,1表示1中正确状态

海明码求解步骤:
例:信息位:1010
1.确定海明码的位数:2^k>=n+k+1
n=4 ----> k=3
设信息位D4D_4D4D3D_3D3D2D_2D2D1D_1D1(1010),共4位,校验位P3P_3P3P2P_2P2P1P_1P1,共3位,对应的海明码为H7H_7H7H6H_6H6H5H_5H5H4H_4H4H3H_3H3H2H_2H2H1H_1H1
2.确定校验位的分布
校验位PiP_iPi放在海明位号位2i-1 的位置上,信息位按顺序放在其余位置

3.求校验位的值
二进制:
H3H_3H3:3 -->011
H5H_5H5:5 -->101
H6H_6H6:6 -->110
H7H_7H7:7 -->111
将末尾为1的值进行偶校验:
P1P_1P1=H3H_3H3⊕H5H_5H5⊕H7H_7H7=D1D_1D1⊕D2D_2D2⊕D4D_4D4=0⊕1⊕1=0
同理中间一位:
P2P_2P2=H3H_3H3⊕H6H_6H6⊕H7H_7H7=D1D_1D1⊕D3D_3D3⊕D4D_4D4=0⊕0⊕1=1
第一位:
P3P_3P3=H5H_5H5⊕H6H_6H6⊕H7H_7H7=D2D_2D2⊕D3D_3D3⊕D4D_4D4=1⊕0⊕1=0

4.纠错
对各个分组进行偶校验运算
校验方程:
S1S_1S1=P1P_1P1⊕D1D_1D1⊕D2D_2D2⊕D4D_4D4
S2S_2S2=P2P_2P2⊕D1D_1D1⊕D3D_3D3⊕D4D_4D4
S3S_3S3=P3P_3P3⊕D2D_2D2⊕D3D_3D3⊕D4D_4D4
接收到:1010010
S1S_1S1=P1P_1P1⊕D1D_1D1⊕D2D_2D2⊕D4D_4D4=0⊕0⊕1⊕1=0
S2S_2S2=P2P_2P2⊕D1D_1D1⊕D3D_3D3⊕D4D_4D4=1⊕0⊕0⊕1=0
S3S_3S3=P3P_3P3⊕D2D_2D2⊕D3D_3D3⊕D4D_4D4=0⊕1⊕0⊕1=0
海明码的检错、纠错能力:纠错——1位
检错——2位
本文详细介绍了BCD码(二进制编码的十进制数),包括8421码、余3码和2421码等不同编码方式。还探讨了奇偶校验码的概念,如奇校验码和偶校验码的实现原理及硬件实现。此外,深入讲解了海明校验码的构造和纠错能力,通过示例展示了如何计算和校验海明码。
5364

被折叠的 条评论
为什么被折叠?



