关于奇偶检验为什么用归约异或

        今天做奇偶校验的时候发现对为什么使用归约异或讲的人很少。所以想把我的想法简单记录一下。

异或简而言之相同为0不同为1。所以显然可以推出一下几个结论:

1,只有0和1相异或结果才会为1

2,一串0做归约异或结果为0

3,两个1做异或结果为0

4,数据的0和1调换位置不影响最终的结果

所以针对一个二进制数做归约异或的时候可以把0当作两个1,再把相邻的两个1当作0。显然当1的个数为奇数个时,最后替换完前面都是0末尾为1,归约异或结果为1。当1的个数为偶数个时,替换为全0,归约异或结果为0。

eg1.   10101 ====>  1_11_1_11_1  ====> 11_11_11_1 ====> 0001 ---------1

eg2.   10010 ====>  1_11_11_1_11 ====> 11_11_11_11 ====> 0000 -------0

或者根据结论4先调换位置再把两个1替换为0更好理解一点

eg1.   10101 ====>  00111  ====> 0_0_11_1 ====> 0001 ---------1

eg2.   10010 ====>  00011 ====> 0_0_0_11 ====> 0000  ---------0

综上所述,归约异或的结果跟数据中包含的1的个数有关,当1是偶数个时结果为0,1是奇数个时结果为1。这与奇偶校验的需求一样。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值