一些位运算表达式的含义

位运算的含义

- \(lowbit(x)\),找到x的二进制数的最低位的1所表示的二进制

比如\(x=6=00000110_{2}\)\([-x]_{补}=11111010_{2}\)\(lowbit(x)=\)x & (-x)\(=10_{2}=2\)

x & (-x)

- 奇偶数判断

若x的二进制数的最后一位为1,为奇数;否则为偶数。

奇数:

(x & 1) == 1

偶数:

(x & 1) == 0

- 乘/除2的幂

乘以\(2^{n}\)

x = x << n

除以\(2^{n}\)

x = x >> n

- 将x的第i位取反

x = x ^ (1 << i)

- 将x的二进制中最低位的1改为0

x = x & (x - 1)

- 让两个相同的数运算结果为0

x  = x ^ x