(1)常规解法
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
bool IsPowerOf2(int num)
{
if (num <= 0)
{
return false;
}
else
{
while (num % 2 == 0)
{
num = num >> 1;
}
return (num == 1) ? true : false;
}
}
int main()
{
vector<int> array = {63, 64, 98, 128};
for (int i = 0; i < array.size(); ++i)
{
cout << IsPowerOf2(array[i]) << '\t';
}
cout << endl;
}
(2)二进制思路
bool IsPowerOf2(const int & num)
{
return (num&(num - 1)) == 0 ? true : false;
}