推荐回答
海明码其实也不难,相对于寄偶检验码它不仅可以检验出错误,还能修正错误!但只能是检验、修正一位错误!说一大堆理论是没什么意思,下面将通过一个例子,尽可能的用最通俗易懂的方式进行讲解!最后大家会发现海明码很神奇!!假设要传送的数据为:10110011校验流程如下:一:确定校验位并插入到有效数据位中。相比奇偶校验只插入一个检验码,海明码需要插入多个检验码,插入的位数与有效数据位数相关,公式如下公式:2^r-r>k+1,其中r就是要插入检验码的个数,取满足条件的最小整数,k是有效数据位数。因为我们要传送的数据是:10110011,显然k=8,推出r=4。也就说我们要将4个校验位插入到有效数据中,怎么插入呢?按照如下规则:插入位置固定为2^N上面的例子中,我们规定:统计子串中1的个数,如果为奇数,则x=0,为偶数,x=1。如果是按这样的规定,那么校验组中1的个数必定是奇数,正是因为如此,所以校验组中如果1的个数不是奇数那么肯定出现了错误!而如果一个串中1的个数是奇数,那么串异或的结果一定为1,其实这个规则对应的就是奇校验!反之,如果为奇数,则x=1,为偶数,x=0,那么对应的就是偶校验!故得到以下结论:如果采用奇检验构造海明码,那么出错校验组中的1的个数必为偶数,即异或的结果必定为0!如果采用奇检验构造海明码,那么出错的位置是校验组异或结果倒置拼接并反转的十进制数如果采用偶检验构造海明码,那么出错校验组中的1的个数必为奇数,即异或的结果必定为1!如果采用偶检验构造海明码,那么出错位置是校验组异或结果直接倒置拼接的十进制数!关于偶检验构造海明码这里就不再详细展开,如果你能用偶检验的方法在把上面的例子都做一遍,那么海明码你就已经完全弄懂了!试试吧!关于奇偶检验码建议还是看看,因为海明码是基于奇偶校验的改进!而且奇偶校验更简单。
赖鸣晓2019-11-06 14:58:00
提示您:回答为网友贡献,仅供参考。