本文主要是介绍校验码——奇偶校验/模2除法/CRC/海明校验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
校验码,是在计算机进行数据传输的过程中,为了提高数据的可靠性设计的,一般是在信息位以外增加校验位来实现,分为多种编码形式。
名称 | 特点 |
---|---|
奇偶校验码 | 能校验,不能纠错。 |
循环冗余校验CRC | 能校验,不能纠错。 |
海明码校验 | 能校验,也能纠错。 |
1. 奇偶校验码
奇偶校验码由若干位有效信息的头部或者尾部(信息位),加上一个二进制位(校验位)组成。奇校验码即整个校验码中1的个数为奇数;偶校验码即整个校验码中1的个数为偶数。
信息位 | 校验位 | 校验码 | |
---|---|---|---|
奇校验码 | 1001101 | 1 | 10011011 |
偶校验码 | 1001101 | 0 | 10011010 |
注意,
如果有奇数个位产生错误码,则奇偶性发生变化,可以校验出误码,但不能纠错;
如果有偶数个位产生错误码,则奇偶性未发生变化,无法校验出误码(又称“漏检”)。
例如:
编码 | 错误数 | 误码 | 结果 |
---|---|---|---|
1011 | 奇数 | 1001 | 奇校验发生变化。 |
1011 | 偶数 | 1000 | 奇校验未发生变化,漏检。 |
1111 | 奇数 | 1011 | 偶校验发生变化。 |
1111 | 偶数 | 1001 | 偶校验未发生变化,漏检。 |
这篇关于校验码——奇偶校验/模2除法/CRC/海明校验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!