如何计算变量中有多少个零位?
我必须使用类似于thist BITCOUNT(x,c)的宏,其中x是我的变量,c是x中零位的计数
示例:X=00101001和C=5

最佳答案

一个简单的解决方案:
#include <limits.h>

#define BITCOUNT(x,c) \
    { \
        int i; \
        (c) = 0; \
        for ( i = 0; i < CHAR_BIT * sizeof(x); i++ ) \
            (c) += ( (x) & ( 1 << i ) ) == 0; \
    }

10-08 19:52