整数n的二进制表示中第k位数字实际
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ca90356054533786f60aff902b440d28.png)
#include<iostream>
#include<vector>
using namespace std;
int main(){
int n;cin>>n;
vector<int> list;
for(int i=3;i>=0;i--) cout<<(n>>i&1);
cout<<endl;
while(n!=0){
list.push_back(n%2);
n/=2;
}
for(int i=list.size()-1;i>=0;i--){
cout<<list[i];
}
}
lowbit:返回x二进制表示下的最后一位1(一个二进制数)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1ffdaf2f4ca17dc426e1bb8fb79704de.png)
int result=x&-x;
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/da01a44d748fef2107e8fdf8de0a068a.png)
#include<iostream>
#include<vector>
using namespace std;
int main(){
int n;
cin>>n;
while(n--){
int num=0;
int x;
cin>>x;
while(x){
x-=x&-x;
num++;
}
cout<<num<<" ";
}
}
二进制表示的末尾0个数n=十进制下最多能被2^n整除
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cad2ebb4c3efd2a31f5dc9b1fc3ac3fd.png)