统计x的二进制表示中1和0的个数

  • 1的个数
int binary1num(int x)
{
    int num = 0;

    while(x)
    {
        x = x & (x-1);
        num++;
    }

    return num;
}
  • 0的个数
int binary0num(int x)
{
    int num = 0;

    while(x+1)
    {
        x = x | (x+1);
        num++;
    }

    return num;
}

你可能感兴趣的:(统计x的二进制表示中1和0的个数)