校验码——奇偶校验/CRC/海明校验

校验码,是在计算机进行数据传输的过程中,为了提高数据的可靠性设计的,一般是在信息位以外增加校验位来实现,分为多种编码形式。

名称 特点
奇偶校验码 能校验,不能纠错。
循环冗余校验CRC 能校验,不能纠错。
海明码校验 能校验,也能纠错。

1. 奇偶校验码

奇偶校验码由若干位有效信息的头部或者尾部(信息位),加上一个二进制位(校验位)组成。奇校验码即整个校验码中1的个数为奇数偶校验码即整个校验码中1的个数为偶数

信息位 校验位 校验码
奇校验码 1001101 1 10011011
偶校验码 1001101 0 10011010

注意,
如果有奇数个位产生错误码,则奇偶性发生变化,可以校验出误码,但不能纠错;
如果有偶数个位产生错误码,则奇偶性未发生变化,无法校验出误码(又称“漏检”)。

例如:

编码 错误数 误码 结果
1011 奇数 1001 奇校验发生变化。
1011 偶数 1000 奇校验未发生变化,漏检。
1111 奇数 1011 偶校验发生变化。
1111 偶数 1001 偶校验未发生变化,漏检。

2. 循环冗余校验(CRC)

CRC可以检错,但不能纠错;检错能力强,漏检率低;虽然运算过程较复杂,但利于计算机硬件实现;广泛应用于数据链路。

学习循环冗余校验码,我们需要先了解异或运算和模2除法运算。

2.1 异或运算

异或运算,相同为0,不同为1。
0⊕0 = 0;0⊕1=1;1⊕0=1;1⊕1=0.

异或运算 0 1
0 0 1
1 1 0

2.2 模2除法运算

运算过程概括:
第一步,被除数首位是几商就取几;
第二步,异或运算;
第三步,异或后余数去首位(肯定是0);
第四步,补末位(落数),再上商。
第五步,循环计算至余数位数不足除数位数时,得余数结果。

示例题:
计算1011 0010 000 模2除 1100 1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值