功能1:
判断一个数字 \(x\) 二进制下第 \(i\) 位是不是等于 \(1\)
if((1<<(i-1) )&x)
将1左移i-1位,相当于制造了一个只有第i位上是1,其他位上都是0的二进制数。然后与x做与运算
如果结果\(>0\) 说明x第i位上是1,反之是0
功能2:
将一个数字x二进制下第i位更改成1
x=x|(1<<(i-1))
功能3:
将一个数字二进制下最靠右的第一个 1 删掉
x=x&(x−1)
或者
x=x-lowbit(x)
其中 lowbit为
lowbit(x)=-x&x
功能4:
将x的二进制第i位变成0//前提是这一位本来是1
x=x-(1<<(i-1))
标签:状压,运算,二进制,lowbit,前置,位上,DP
From: https://www.cnblogs.com/sea-and-sky/p/18364858