检查整数num的第i位(二进制表示)是否为1,是返回true,否则返回false
java
boolean getBit(int num, int i) {
return ((num & (1 << i)) != 0)
}
将整数num的第i位置为1
java
int setBit(int num, int i) {
return (num | (1 << i));
}
将整数num的第i位置为0
java
int clearBit(int num, int i) {
return (num & ~(1 << i));
}
更新: 将整数 num 的第 i 位(二进制位)更新为值 v(v 为 0 或 1)
java
int updateBit(int num, int i, int v) {
int mask = ~(1 << i); // 步骤1:生成掩码
return (num & mask) | (v << i); // 步骤2:清除旧位 + 设置新位
}