数据在传输的过程中,会受到各种干扰的影响,如脉冲干扰、随机噪声干扰、信号的衰减和人为干扰等,这会使数据产生差错。为了能够控制、减少甚至消除传输过程中的差错,就必须采用有效的措施来控制差错的产生。
最常用的差错控制方法是差错控制编码,即在发送的报文中附加校验码,接收方检测到有差错的报文后进行纠错。常用的校验码有奇偶校验码和循环冗余码。
奇偶校验码
奇偶校验码是最简单的校验码,其编码规则是:根据传输的二进制数据和奇偶校验位中 “1” 的个数进行校验。如果连同校验位中 “1” 的个数是奇数,就是奇校验;反之,就是偶校验。
例如,传输数据为 “1010010”,采用奇校验时因为数据中"1"的个数为奇数于是附加校验位应该为 “0” ,因此发送方发给接收方的传输数据会变为 “10100100”。如果接收方收到的数据中有一位出错(如 “10110100”),此时奇校验就可以检查出错误(根据奇校验的原则数据中的"1"应该是奇数个)。但是若接收方接收到的数据中有两位出错(如"01100100")此时奇校验就无法检查出错误。类似的偶校验也会出现这样的弊端。因此,奇偶校验一般只能用于通信要求较低的环境,且只能检测错误,无法确认错误位置及修改错误。
【实例】
如果二进制数字 “11011001” 采取奇校验,那么校验位是什么?
解析: “11011001” 这串数字中 “1"的个数是奇数个,根据奇校验的原则,如果采取奇校验,那么这串数字中的"1"的个数应该是奇数个,显然这串数字中"1"的个数符合奇校验的原则,此时校验位应该填写为 “0”。
【实例】
如果二进制数字 “10001001” 采取偶校验,那么校验位是什么?
解析:“10001001” 这串数字中 “1” 的个数是奇数个,根据偶校验的原则,如果采取偶校验,那么这串数字中的"1"的个数应该是偶数个,显然这串数字中"1"的个数不符合偶校验的原则,此时校验位应该填写为"1”。