程序:
#include<iostream>
using namespace std;
int f(int a){
//判断一个数是否是2的几次方,是输出1,不是输出0
return a&a-1?0:1;
}
int main(){
cout<<f(4)<<" "<<f(11)<<" "<<f(64)<<endl;
return 0;
}
科普:优先级:
从上往下运算
新增4、26
位运算有一个经典的运用摘自【技巧总结】位运算装逼指南_位运算技巧-CSDN博客
其中的交换两个数可以参考一下
才知道位运算是可以 进行交换律和结合律的,挺牛,时间复杂大O(1)