2

是否有一个标准的 Linux 内核位操作宏,它返回 unsigned long 中设置的位数?

4

2 回答 2

2

您可以使用:

hweight_long

作用于include/linux/bitops.h

Othwerwise Linux 内核gcc与 GNU 扩展一起使用,并且gcc还提供了这些内置函数:

内置函数: int __builtin_popcount (unsigned int x) 返回 x 中 1 的位数。

内置函数:int __builtin_popcountl (unsigned long) 类似于__builtin_popcount,只是参数类型是unsigned long。

http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html

于 2013-01-16T19:23:34.473 回答
0

由于您在标签中包含了 C 。您可以使用C代码来确定此处指出的

https://stackoverflow.com/a/2709523/1952879

于 2013-01-16T19:23:46.113 回答