给定 C++03 中的 32 位或 64 位整数,确定是否恰好设置了一位的有效方法是什么? (例如,值恰好是 1、2、4、8、16、32 等中的一个)C++ 03 库(如果没有,则为 C++11)是否有任何内置函数可以在我碰巧遇到的任何硬件上高效工作在吗?我想将其用于多次出现的频率越来越低的衰减消息。
最佳答案
如果你有一个已知不为零的整数x
,那么
if (0 == (x & (x - 1)))
{
there_is_only_1_bit = true;
}
关于c++ - 如何高效判断一个整数的汉明权重是否正好为1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25694959/