c - C 中的 BITCOUNT 宏

标签 c macros bit

如何计算变量中有多少个零位? 我必须使用像 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; \
    }

关于c - C 中的 BITCOUNT 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16628036/

相关文章:

c - 没有参数的格式说明符

c++ - 内联函数

java - 如何将位组合成一个 long 来创建一个唯一的 ID?

c# - 如何获取int的位大小

c - 确定函数的 Big-O 表示法

从另一个 C 文件调用函数

c# - 如何在 VS2010 中粘贴为评论?

c++ - 在宏定义中使用 __LINE__

Java - 优化将值作为位写入字节缓冲区

c - fgets() 没有像我预期的那样工作