1.计算整数的二进制表示中1的个数
int func(int x)
{
int count = 0;
while (x)
{
count++;
x &= x - 1;
}
return count;
}
2.计算整数的二进制表示中0的个数
int CountZeroBit(int num)
{
int count = 0;
if (!num)
{
return 1;
}
while (num)
{
if (num % 2 == 0)
{
count++;
}
num = num / 2;
}
return count;
}
3.交换两个变量的值,不使用第三个变量
void swap(int* a, int* b)
{
*a = *a + *b;
*b = *a - *b;
*a = *a - *b;
}
4.清除指定位
void clear_bit_n(int *x, int bit)
{
*x &= ~(1 << bit);
}
5.设置指定位
void set_bit_n(int* x, int bit)
{
*x |= 1 << bit;
}