首页 > 代码库 > 校验码 -> 奇偶校验
校验码 -> 奇偶校验
何谓奇偶校验?
奇偶校验是一种简单有效的校验方法。
这种方法通过在编码中增加一位校验位来使编码中1的个数为奇数或者偶数
位数是奇数的就叫做奇校验,偶数就叫做偶校验
通过这种方式可以使码距变成2
举例
下例取自wikipedia
原数据(7位) | 1的个数 | 偶校验(8位) | 奇校验(8位) |
0000000 | 0 | 00000000 | 00000001 |
1010001 | 3 | 10100011 | 10100010 |
校验原理
奇偶校验可以通过逐位异或的方式来简化运算
校验成功
- A向B发送数据1001
- 判断1的个数是否为偶数:
1^0^0^1=0
,因为逐位亦或的结果为0所以1的个数为偶数 - 在原数据末尾添0,变成10010
- 传输出错
- B收到的数据变成11010
- B对收到的数据进行逐位亦或
1^1^0^1^0=1
- 计算结果为1,因为偶校验,所以正确的结果应该是0,
1!=0
,传输出错!
校验失败
由于奇偶校验比较简单,对于下列情况就无能为力
1001 -> 10010(偶校验) -> 10111(传输出错)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。