奇偶校验码原理及计算

什么是奇偶校验码?百度百科给了如下定义:奇偶校验码是 一种增加二进制传输系统最小距离的简单和广泛采用的方法。是一种通过增加冗余位使得码字中1的个数恒为奇数或偶数的编码方法,它是一种检错码。在实际使用时又可分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验等几种。

顾名思义,奇偶校验码只具有检测能力,并没有纠错能力,并且只能检测一位错误。

基本思想:奇偶校验是通过增加一位冗余位(即校验位)来使编码中1的个数为奇数或偶数,使码距变为2。

例如我们有一串二进制数需要传输校验,数据位为01000101,为了在接收端检验我们在传输过程中是否出现了差错,我们在数据位的高位(有些书上写的是在低位,这两种方式都可以)添加一位校验位,然后计算整个二进制数中 “1” 的个数,如果接收端接收到的二进制数中 “1” 的个数与发送端的个数一致,则数据传输正确,如果不一致则发生数据传输错误

这里有一个问题,如果数据位中两位数据同时发生错误,则使用奇偶校验码可能检测不出来。

同样还是以上面的数据为例,01000101,如果最后两位变为10,则原数据位变为01000110,则使用奇偶校验就检验不出来,因为1的个数没有发生改变,所以接收端检测不出来,这就是为什么奇偶校验码只能检测一位错误的原因。

奇偶校验码的基本的校验方式有两种,一种是奇校验,一种是偶校验,我们一块来看一下这两种校验方式怎么计算。

奇校验:在数据位的高位添加一位校验位,保证校验位+数据位中 “1” 的个数为奇数

例1:数据0100101 ,数据高位前添加0,使得整个传输数据中 “1” 的个数为奇数(这里为3)

结果:0|0100101

例2:数据01010,数据高位前添加1,使得整个传输数据中 “1” 的个数为奇数(这里为3)

结果:1|01010

偶校验:在数据位的高位添加一位校验位,保证校验位+数据位中 “1” 的个数为偶数 

例1:数据0100101 ,数据高位前添加1,使得整个传输数据中 “1” 的个数为偶数(这里为4)

结果:1|0100101

例2:数据01010,数据高位前添加0,使得整个传输数据中 “1” 的个数为偶数(这里为2)

结果:0|01010

以上就是关于奇偶校验码的基本计算,如有错误,欢迎指正! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值