sum 2^n数之和 eg: 2^1 + 2^2 = 6
num 2^n eg: 2^1
1. & 与运算
二进制运算规则: 同位都为1时为1, 否则为0
运算结果:
sum & num = num sum中包含num
sum & num = 0 sum中不包含num
2. | 或运算
二进制运算规则: 同位有1时为1, 否则为0
运算结果:
sum | num = sum sum中包含num
sum | num = sum + num sum中不包含num
3. ^ 异或运算
二进制运算规则: 同位为异时为1, 否则为0
运算结果:
sum ^ num = sum - num sum中包含num
sum ^ num = sum + num sum中不包含num
适用场景
eg: 用户选择自己的爱好, 在某一时刻, 需要查询该用户是否有某个爱好
可以将爱好写为2^n次的数字枚举, 多个爱好可以存储为和值, 查询时使用位运算即可