小米oj 反向位整数(简单位运算)
反向位整数
序号:#30难度:一般时间限制:1000ms内存限制:10M
描述
输入32位无符号整数,输出它的反向位。 例,输入4626149(以二进制表示为00000000010001101001011011100101),返回2808701440(以二进制表示为10100111011010010110001000000000)。
输入
一个无符号32位整数字符串
输出
一个无符号32位整数,为输入整数的反向位
输入样例
4626149
复制样例
输出样例
2808701440
#include<stdio.h>
using namespace std;
typedef long long ll;
int main()
{
ll n;ll m;
while(~scanf("%lld",&n))
{
m=0;
for(int i=0;i<32;i++)
{
m|=((1&(n>>i))<<31-i);
}
printf("%lld\n",m);
}
return 0;
}