位运算-异或运算

1.性质


对于第五条进行解释, 可以看到如下例子, 四者异或运算结果位0(有1的位都出现了两次), 而 *i 也只是将位进行平移而已, 并不影响异或结果
011
010
001
000

2.补充

2.1 x&(x1) 去除最低位1

举例:
x=a10000; (a为高位部分)
x1=a01111;
x&(x1)=a00000
这样就去除最低位1了

2.2 x(x) 取最低位1

举例:
x=a10000; (a为高位部分)
x=a¯10000; (取反加1, 01111 + 1 = 10000)
x(x)=010000 则只剩下最低位1了!

2.3 函数 sumXor(x),表示 012x

因为以 4i为开头的连续四个整数异或的结果为 0(参考性质5),
所以 sumXor(x)可以被表示为:
sumXor(x)={x,x=4k,kZ(x1)x,x=4k+1,kZ(x2)(x1)x,x=4k+2,kZ(x3)(x2)(x1)x,x=4k+3,kZ

我们可以进一步简化

  1. 第一个原样
  2. (x1)x, 由于x=4k+1,末尾为1,而(x1)x=...1...0=0...1=1
  3. (x2)(x1)x 中x=4k+2,所以(x2)(x1)=11x=x+1(x=4k+2,01)
  4. 这个参考上面的性质5即可
    sumXor(x)={x,x=4k,kZ1,x=4k+1,kZx+1,x=4k+2,kZ0,x=4k+3,kZ
posted @   DawnTraveler  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示