输入一个数,判断这个数是否为2的次幂。
思路:
利用n&(n-1)可以将最右边的1变为0,当n&(n-1)==0时,说明该数字的二进制表示中只有一个1,所以该数字为2的次幂。
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n, count = 0;
cin>>n;
if((n>0) && (!(n&(n-1))) == true)
cout<<"这个数是2的幂"<<endl;
else
cout<<"这个数不是2的幂"<<endl;
return 0;
}