位运算
概览
符号 | 描述 | 运算规则 |
---|---|---|
& | 与 | 两位都为1时结果才为1 |
or | 或 | 两位都为0时结果才为0 |
~ | 取反 | 0变1,1变0 |
^ | 亦或 | 两位相同为0,不同为1 |
<< | 左移 | 乘以2 |
>> | 右移 | 除以2 |
状态压缩
| 操作 | 实现 |
| ---- | ---- | ---- |
| 取出n在二进制下的第k位 | (n>>k)&1 |
| 把n在二进制下的第k位取反 | n xor (1<<k) |
| 把n在二进制下的第k位赋1 | n or (1<<K) |
| 把n在二进制下的第k位赋0 | n&(~(1<<k)) |
| 最后一位取反 | n xor 1 |