位操作
关于位操作,你一定要知道的
位操作的常见技巧
第一个需要掌握的技巧是n & (n - 1),通过该操作我们可以让n的最后一个1变为0。
第二个需要掌握的技巧是lowbit(n) = n & (-n) ,lowbit操作可以让我们获取到n的低位。
第三个需要知道的是二进制表示下不进位,例如:XOR又称作不进位加法。
第四个技巧在于 n XOR 1成对变换。
最后,掌握二进制位状态压缩的常见操作
操作 | 运算 | 说明 |
---|---|---|
取出n的第k位 | n & (1 << k) | n & (00010000) |
取出n的后k位 | n & (1 << k) - 1 | n & (00011111) |
n的第k位取反 | n xor (1 << k) | n xor 00010000 |
n的第k位置1 | n | (1 << k) | n | 000010000 |
n的第k位置0 | n & ~(1 << k) | n & 1111101111 |
位操作相关的经典题目
题目分类 | 题目名称 | 考察点 | 其他说明 |
---|---|---|---|
比特位计数 | |||
找到序列中仅出现一次的数字 | 位操作-XOR操作 | ||
该数二进制表示中1的个数 | 位操作-找1 | ||
通过位运算来实现加法 | XOR技巧 |