-
__builtin_popcount(n),可以精确计算n表示成二进制时有多少个1。
-
(二的幂的话二进制只有一个1 ) 借助这个函数可以快速判断一个数是否是2的幂。
#include<bits/stdc++.h>
using namespace std;
bool ispoweroftwo(int n)
{
return n&&__builtin_popcount(n)==1;
}
int main()
{
int n;
while(cin>>n)
cout<<ispoweroftwo(n)<<endl;
}