10.2Reverse Bits位运算基础问题
题目描述
给定一个十进制整数,输出它在二进制下翻转结果
输入输出样例
Input :43261596
Output:964176192
题解
使用左移和右移,就可以实现二进制翻转
cpp
#include <iostream>
using namespace std;
//uint32_t:unsigned int 32 bit,32位无符号整型数
uint32_t reverseBits(uint32_t n) {
uint32_t ans = 0;
for (int i = 0; i < 32; ++i) {
ans <<= 1;
ans += n & 1;
n >>= 1;
}
return ans;
}
int main() {
uint32_t n = 43261596;
cout << reverseBits(n) << endl;
return 0;
}