#include"stdafx.h"
#include<iostream>
using namespace std;
/**
一句话实现是否为2的若干次幂的判断
当m中只有一位为1时,才为若干次幂
若有两个集以上1,则(m&(m-1))不为0,输出0,表示不为2的若干次幂
类比:
x为2的若干次幂即表示x中1的位数为1,题目转化为求一个32位数中1的位数,如果为1,
则表示该数为2的若干次幂
同理也可以用此规则求一个32位数中1的位数,(m&(m-1))每次可用消除一个1,计算的
次数即为1的个数
*/
int main()
{
int m = 512;
cout << ((m&(m - 1)) ? false : true) << endl;
return 0;
}
C++ 一句话实现是否为2的若干次幂的判断
最新推荐文章于 2023-11-03 17:32:53 发布