描述
输入32位无符号整数,输出它的反向位。 例,输入4626149(以二进制表示为00000000010001101001011011100101),返回2808701440(以二进制表示为10100111011010010110001000000000)。
输入
一个无符号32位整数字符串
输出
一个无符号32位整数,为输入整数的反向位
输入样例
4626149
输出样例
2808701440
AC代码:
#include <bits/stdc++.h> #include<vector> #include<stack> #include<sstream> using namespace std; int pow2(int a){ int sum = 1; while(a--){ sum = sum*2; } return sum; } int main() { int number; while(cin>>number) { unsigned int result = 0; int cnt = 0; unsigned int mask = 1; mask = mask << 31; while(mask) { if(number & mask) { result = result + pow2(cnt) * 1; } else { result = result + pow2(cnt) * 0; } mask = mask>>1; cnt++; } cout<<result<<endl; } }