-x = x(B)取反 再+1
x&-x : 全为1出1,与关系
法一 #include<bits/stdc++.h> using namespace std; int lowbit(int x){ return x&(-x); } int main(){ int n; while(cin>>n,n!=0){ cout<<lowbit(n)<<endl; } return 0; } 法二 #include<bits/stdc++.h> using namespace std; int main(){ int n,b,c; while(cin>>n,n){ c=0; while(n){ b=n%2; if(b) break; c++;n/=2; } cout<<(1<<c)<<endl; } }