二进制状态压缩
二进制状态压缩,是指将一个长度为m 的bool 数组 , 用一个 m 位二进制整数表示并存储的方法.
操作 | 运算 |
---|
取出整数n 在二进制下表示下的第k位 | (n>>k) &1 |
取出整数n 在二进制下表示下的第0 ~k-1 位置(后k位) | n & ( ( 1 << k ) - 1 ) |
把整数 n 在二进制下表示下的第k位取反 | n xor (1 << k) |
对整数 n 在二进制表示下的第 k 位赋值1 | n \ ( 1<<k) |
对整数n 在二进制表示下的第k 位赋值 0 | n& (~(1<<k)) |