cook:位运算

cook:位运算

对任意整数值x,要将其最右边的n位清零 #

x & (~0 << n)

对任意整数值x,用位运算获取第n位的幂值 #

x & (1 << n)

对任意整数值x,用位运算获取第n位的值(0或1) #

(x >> n) & 1

对任意整数值x,用位运算将最高位至第n位(含)清零 #

x & ((1 << n) - 1)

对任意整数值x,用位运算将其第n位设置为1 #

x | (1 << n)

对任意整数值x,用位运算将其第n位置为0 #

x & (~(1 << n))

对于任意整数值x,要清零最低位的1 #

x & (x - 1)

对于任意整数值x,要得到最低位的1 #

x & (-x)

判断整数的奇偶性 #

x % 2 == 1  <==> (x & 1) == 1
x % 2 == 0  <==> (x & 1) == 0

与-x等价的表达式 #

~x + 1

补码非的一种方法是对每一位求补,再对结果加1。