class Solution {
public:
string dtob(int num)
{ int upup=0;
string ans;
while(num>0)
{
int tmp = num%2;
num/=2;
upup=tmp/2;
ans+=tmp+'0';
}
//如果是奇数位,首位添0
if(ans.size()%2==1){
ans+='0';
}
reverse(ans.begin(),ans.end());
return ans;
}
int btod(string s)
{ int ans=0;
for( int i=0;i<s.size();i++)
{
ans+=(s[i]-'0')*pow(2,s.size()-i-1);
}
return ans;
}
int exchangeBits(int num) {
//将s转换为二进制
string s = dtob(num);
//0与1,2与3交换
for(int i=0;i<s.size()/2;i++)
{
swap(s[2*i],s[2*i+1]);
}
//cout<<s<<endl;
int ans=btod(s);//换位后,将二进制转回int
return ans;
}
};