校验码
何谓奇偶校验?
奇偶校验是一种简单有效的校验方法。
这种方法通过在编码中增加一位校验位来使编码中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(传输出错)
校验码
何谓奇偶校验?
奇偶校验是一种简单有效的校验方法。
这种方法通过在编码中增加一位校验位来使编码中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(传输出错)