校验码在内存和通信的检错容错中应用广泛。
常用的校验码有奇偶校验码(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