校验码

校验码在内存和通信的检错容错中应用广泛。

常用的校验码有奇偶校验码(Parity)、海明校验码和循环冗余校验码(CRC)

奇数偶数用异或操作即可计数实现。

奇偶校验码是对每个byte (8 bits) 加一位校验码,此时根据所采用的的是奇校验还是偶校验来确定校验码的值,使之这个序列中的1的个数为奇数/偶数。

优点:高效,快;

缺点:能反映错误但是无法定位错误,只能说错了就重传

海明码则是多重奇偶校验,它的做法是假设N位的数据,我们采用多位校验码,假设K位,加入了这K位校验码之后,我们能够用校验码的组合唯一地(一一对应地)反映N+K位的错误,所以 2^K-1>=N+K.

校验码的值采用分配的相关数据位之间异或加奇/偶校验获得。

而且得到的K位校验码的位置也是插入在2^K位,至此,获得海明码序列。

判断错误位置,则是采用分配的相关数据位和校验位之间异或加奇/偶校验获得,其bin2des的值就是发生错误的位数。

https://blog.csdn.net/u012532559/article/details/45307329

CRC

http://www.manongjc.com/article/947.html

https://blog.51cto.com/winda/1063951

原文地址:https://www.cnblogs.com/lemonQ/p/11072914.html