CN_奇偶校验_奇校验码和偶校验码的概念和实例
奇偶校验码
- 奇偶校验码就是在信息码后面加一位校验码,分
奇校验
和偶校验
。
奇校验:
- 添加一位校验码后,使得整个码字里面1的个数是奇数。
使用(验证)方法
- 接收端收到数据后就校验数据里1的个数,
- 若检测到奇数个1,则认为传输没有出错;
- 若检测到偶数个1,则说明传输过程中,数据发生了改变
偶校验:
- 添加一位校验码后,
使得
整个码字里面1的个数是偶数。
验证方法
-
接收端收到数据后就校验数据里1的个数,
-
若检测到偶数个1,则认为传输没有出错;
-
若检测到奇数个1,则说明传输过程中,数据发生了改变,要求重发。
-
小结
- 在原编码上加一个校验位(增加的冗余位称为奇偶校验位),它的码距等于2,
- 可以检测出一位错误(或奇数位错误),但不能确定出错的位置,也不能够检测出偶数位错误,
- 奇偶校验实现的方法:
- 由若干位有效信息(如1B)再加上一个二进制位(校验位)组成校验码,
- 校验位的取值(0或1)将使整个校验码中“1”的个数为奇数或偶数,所以有两种可供选择的校验规律。
- 奇校验码:整个校验码(有效信息位和校验位)中“1”的个数为奇数。
- 偶校验码:整个校验码(有效信息位和校验位)中“1”的个数为偶数。
奇偶校验码结构
-
奇偶校验码有两部分组成
- 奇偶校验位
- 1bit
- 有效信息位
- n位
- 奇偶校验位
exercise:补全给定二进制串的奇偶校验码
-
给出两个编码A=1001101和 B=1010111的奇校验码和偶校验码:
-
设最高位为校验位p,余n=7位是信息位,则对应的奇偶校验码为
-
A=1001101
-
数据编号 数据取值 1的个数 0的个数(不重要,不看) 奇校验码 偶校验码 A 1001101 4 3 1 1001101 0 1001101 B 1010111 5 2 0 1010111 1 1010111
-
-
从另一个角度上看(给定一个奇校验码或偶校验码,求解缺失的某一个bit)
- 将一个信息码X前面加1/0,分别得到两个数,这两个数中一个是奇校验码,另一个就是偶校验码
- 将两个数分别记为 X 0 X_0 X0, X 1 X_1 X1
- 并且可以断言,
X
i
,
i
=
0
或
1
X_i,i=0或1
Xi,i=0或1要么是X的奇校验码(简称为奇码),要么是X的偶校验码(简称为偶码)
- 总结: X 0 , X 1 X_0,X_1 X0,X1满足:非奇即偶,一奇一偶
- 如果
X
i
X_i
Xi中的一个已经知道是P校验码,那么另一个就是Q校验码
- P,Q的可能取值组合为:
- P=奇,Q=偶
- P=偶,Q=奇
- P,Q的可能取值组合为:
- 🎈那么:分别计数
X
0
,
X
1
X_0,X_1
X0,X1这两个n+1位校验码中包含的的1的个数,
- 如果是奇数,那它就是奇校验码,
- 如果是偶数,就是偶校验码
- 0的个数就不看啦
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」