//判断一个数字的某一位是不是1
bool getBit(int num, int i)
{
return num & (1 << i);
}
//把一个数字的某一位置1
int setBit(int num, int i)
{
return num | (1 << i);
}
//把一个数字某一位置0
int clearBit(int num, int i)
{
int mask = ~(1 << i);
return num & mask;
}
//把一个数字的最高位到某一位的所有位置0
int clearMSBtoI(int num, int i)
{
int mask = (1 << i) - 1;
return num & mask;
}
//把一个数字的某一位到最低位置0
int clearIto0(int num, int i)
{
int mask = ~((1 << (i + 1)) - 1);
return num & mask;
}
//更新一个数字的某一位为1或者0
int updateBit(int num, int i, int v)
{
int mask = ~(1 << i);
return (num & mask) | (v << i);
}
位操作基本知识
最新推荐文章于 2022-02-25 21:16:16 发布