1、检测码:是一种奇偶校验,看1的个数是奇数还是偶数。只能用来检验不能纠错——广泛用于移动通信
2、CRC码(循环冗余校验):冗余循环校验码,是一种循环码,它通过循环位移,实现检错,硬件容易实现,广泛用于局域网。只能检错不能纠错
它是一种用于监测数据传输或存储中错误的校验方式,而非加密算法。是通过生成固定的校验码来验证数据的完整性。
①加密原理(工作原理):它是基于多项式除法,将数据视为二进制多项式,除以一个预定的生成多项式,得到的余数即为校验码。发送方将数据和校验码一起发送,收到方重新计算校验码并与接受到的校验码比对,若不一致则说明数据有误
3、海明码:是一种纠正错误的差错编码,循环冗余校验码能检测错误但是不能纠正错误。奇偶校验码在1的个数是奇数性没有发生变化时,是检测不出错误存在的。
所以为了避免出现奇偶校验码这种不能检测出错误的情况存在
海明码就会在他的数据位m后面增加冗余校验位k,所以m+k,则满足m+k<2k-1可纠正一位错误(此时奇偶校验码的1个数一定会发生改变,并且是奇数),此时既可以检错还能纠错。
你以为到这里就结束了吗,不不不知道了他的原理机制,那么怎么知道一次检错多少位,纠正多少位呢?
海明码的码距d:也叫做海明码距,俩个码字之间不同的最小的位数(比特数)
- 检测多少位错误:≤d-1
- 可以纠正多少错误:<d/2