本文主要是介绍C++ 一句话实现是否为2的若干次幂的判断,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#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的若干次幂的判断的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!