码迷,mamicode.com
首页 > 其他好文 > 详细

如何利用一条简单语句判断一个整数是否为2的整数次幂

时间:2019-12-26 00:12:29      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:mes   ref   除了   main   lin   利用   如何   plain   写代码   

在写代码的过程中可能会遇到判断一个整数是否为2的整数次幂的问题,除了枚举的方法,还可以利用二进制的知识进行简单快速判断。

2的整数次幂用二进制表示只存在一个1和n个0,因此,我们利用位运算&判断一个整数a与a-1的&是否为0即可。具体代码如下。

代码非常简洁。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1 大专栏  如何利用一条简单语句判断一个整数是否为2的整数次幂5
16
17
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
bool judge(LL x)
{
if((x&(x-1))==0)
return true;
return false;
}
int main()
{
LL a;
cin>>a;
if(judge(a))
cout<<"yes"<<endl;
else cout<<"no"<<endl;
}

如何利用一条简单语句判断一个整数是否为2的整数次幂

标签:mes   ref   除了   main   lin   利用   如何   plain   写代码   

原文地址:https://www.cnblogs.com/lijianming180/p/12099616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!