0

C++03 で 32 ビットまたは 64 ビットの整数が与えられた場合、正確に 1 ビットが設定されているかどうかを判断する効率的な方法は何ですか? (たとえば、値は正確に 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 に答える