这个问题已经在这里有了答案:




9年前关闭。






你好

如何计算多少位?

1100110 -> 4
101 -> 2

第二个问题:

如何反转位?
1100110 -> 0011001
101 -> 010

谢谢

最佳答案

  • 您可以在数字非零时循环播放,并在最后一位设置后递增计数器。或者,如果您使用的是英特尔架构,则可以在内联汇编中使用popcnt指令。
    int count_bit_set(unsigned int x) {
        int count = 0;
        while (x != 0) {
            count += (x & 1);
            x = x >> 1;
        }
        return count;
    }
    
  • 您使用~运算符。
  • 关于c++ - 计算位和位求逆中有多少位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5456409/

    10-11 22:35
    查看更多