给定一个32bit的整数a。求另一个整数b,使得a和b的二进制序列互为逆序。
Condition 1. 假设a=10(000A)16,,则希望得到b=(5000)16。
#include"iostream"
using namespace std;
int a=10;
int b=0;
int i;
int main()
{
for(i=0;i<32;i++)
{
b=(b<<1)+(a&1);
a>>=1;
}
cout<<b<<endl;
}
Condition 2. 不固定32b,假设a=10(000A)16,,则希望得到b=(0005)16。
#include"iostream"
using namespace std;
int a=10;
int b=0;
int i;
int main()
{
while(a)
{
b=(b<<1)+(a&1);
a>>=1;
}
cout<<b<<endl;
}