【数据结构与算法】巧用位运算
文章目录
位运算的巧思
用位运算来求集合公式
术语:
- 与:
&11为1 ,其余为0 - 或:
|有1为1, 00为0 - 异或:
⊕(^)相异为1, 相同为0 - 反:
~按位取反
| 术语 | 集合 | 位运算 | 集合示例 | 位运算示例 |
|---|---|---|---|---|
| 交集 | A∩B | a&b | {0,2,3} ∩{0,1,2} ={0,2} |
1101 &0111 = 0101 |
| 并集 | A∪B | a|b | {0,2,3} ∪{0,1,2} ={0,2} |
1101 | 0111 = 1111 |
| 对称差 A,B相交以外的元素 |
AΔB | a^b | {0,2,3} Δ{0,1,2} ={1,3} |
1101 ^0111 =1010 |
| 差(B不为子集) | A\B | a&(~b) | {0,2,3} \{1,2} ={0,3} |
1101 &1001 =1001 |
| 差(B为子集) | A\B B⊆A | a^b | {0,2,3} \{0,2} ={3} |
1101 ^0101 =1000 |
| 包含于 | A⊆B | a&b == a or(用于判断) a|b == b |
{0, 2} ⊆{0,2,3} | 0101&1101==0101 OR 0101 | 1101 == 0101 |
用位移求集合公式
术语:
- 左移
<<:低位补零,相当于乘以 2 i 2^i 2i - 右移
>>: 高位补零,相当于除以 2 i 2^i 2

最低0.47元/天 解锁文章
235

被折叠的 条评论
为什么被折叠?



