奇校验:让原有数据序列中(和要加上的一位)1的个数为奇数。如01000110【0】需添0,这样原来有三个1,三个1已经是奇数了,所以添上0之后1的个数还是奇数个。
偶校验:让原有数据序列中(和要加上的一位)1的个数为偶数。如01000110【1】需加1,这样原来有3个1,要想1的个数为偶数,需再加一个1。
校验的原理:假如采用奇校验,发送端发送的一个字符编码(含校验位)中,"1"的个数一定为奇数个,在接收端接收字符二进制位中的"1"的个数进行统计,若统计出"1"的个数为偶数个,则意味着传输过程中有1位(或奇数位)发生差错。反之,若"1"的个数为奇数个,则传输代码正确。同理,若为偶校验,则当接收端收到这组代码时,校验"1"的个数是否为偶数,从而确定传输代码的正确性。
海明码:海明码是奇偶校验的一种扩充。和奇偶校验的不同之处在于海明码采用多位校验码。
原理:在数据中间加入几个校验码,码距均匀拉大,当某一位出错,会引起几个校验位的值发生变化。
海明码公式:2^k-1≥n+k(n表示原数据位数,k表示校验位数)