位运算

位运算 Bitwise operations

由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。

常见位运算符:

编程常用的位运算操作

x & 1 == 1 or == 0  判断 x 的二进制最后是 1 还是 0,即判断奇偶性(x % 2 == 1)

x = x & (x - 1)  清零最低位的 1。例如 110101 & 110100 得到110100;110100 & 110011 得到11000

x & -x  得到最低位的1。 -x 是取反再加1

x & ~x  得到 0

更为复杂的位运算操作

1. 将 x 最右边的 n 位清零:x & (~0 << n)

2. 获取 x 第 n 位值:(x >> n) & 1

3. 获取 x 第 n 位的幂值:x & (1 << (n-1))

4. 仅将第 n 位置为 1:x | (1 << n)

5. 仅将第 n 位置为 0:x & (~(1 << n))

6. 将 x 最高位至第 n 位(含)清零:x & ((1 << n) - 1)

7. 将第 n 位至第 0 位(含)清零:x & (~((1 << (n + 1)) - 1))

原文地址:https://www.cnblogs.com/chaojunwang-ml/p/11338890.html