#include<iostream>
#include<bitset>
#include<cmath>
using namespace std;
int main(int argc, char* argv[])
{
int get, count;
while(cin >> get)
{
if(get == 0)
return 1;
bitset<8> bs(get);
count = 0;
int len = bs.size();
int i = 0;
for(;i < len-1 && !bs[i]; i++);
cout << pow((double)2,i) << endl;
}
return 0;
}
bitset的顺序居然是LSB在前,MSB在后,方便了,但是,不习惯。。。
下面是网上的,哎-->
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
for(int n;cin >> n && n!=0;)
cout << int(n&-n) << endl;
return 0;
}