讲解视频:
求n的二进制表示
lowbit()运算
简单应用:
地址:
代码:
讲解视频:
https://www.acwing.com/video/14/
求n的二进制表示
//已知10的二进制表示是1010
#include <iostream>
#include <string.h>
int main(){
int n=10;
for(int k=3;k>=0;k--) cout<<(n>>k&&1);
return 0;
}
lowbit()运算
注意这里返回最后一位1的意思是:
例如一个数为101000,那么它返回的是1000
简单应用:
求二进制中1的个数
地址:
https://www.acwing.com/problem/content/803/
代码:
#include <iostream>
using namespace std;
int lowbit(int x){return x&-x;
}
int main(){int n;cin>>n;while(n--){int x;cin>>x;int res=0;//存储的是二进制数中1的个数//5的二进制是101,一次100,两次000//当x不等于0时,不断的减去最后一位1,并把1的个数+1while (x) {x-=lowbit(x);res++;}// for(int i=x;i>0;){// i-=lowbit(i);// res++;// }cout <<res;
}
}