判断给定的整数是否是一个2的幂
2的幂在2进制下形式为10;100,1000....。对其减1,为01,011,0111....这时我们可以使x与x-1相与,判断相与后的值是否为0。为0则表示x为2的幂,否则不是。
#include<iostream>
using namespace std;
void main(){
int x;
cin >> x;
if((x& x-1) == 0)
cout << "ture";
}
判断给定的整数是否是一个2的幂
2的幂在2进制下形式为10;100,1000....。对其减1,为01,011,0111....这时我们可以使x与x-1相与,判断相与后的值是否为0。为0则表示x为2的幂,否则不是。
#include<iostream>
using namespace std;
void main(){
int x;
cin >> x;
if((x& x-1) == 0)
cout << "ture";
}