0

给定 C++03 中的 32 位或 64 位整数,确定是否恰好设置了一个位的有效方法是什么?(例如,值恰好是 1、2、4、8、16、32 等之一)C++ 03 库(或者如果没有,则 C++11)是否有任何内置函数可以在我碰巧遇到的任何硬件上有效工作上?我想将它用于在多次出现时出现频率越来越低的衰减消息。

4

1 回答 1

6

如果你有一个x已知不为零的整数,那么

if (0 == (x & (x - 1)))
{
  there_is_only_1_bit = true;
}
于 2014-09-05T22:49:11.783 回答