描述
把一个数的二进制表示逆转后,求逆转后的值
解决
用bitset解决,然后在循环里面移位。最后返回时,再判断最后一位的值。
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
bitset<32> zz(n);
string tmp = zz.to_string();
//cout << tmp << endl;
reverse(tmp.begin(), tmp.end());
int length = tmp.size();
int sum = 0;
for (int i = length - 2; i >= 0; --i)
{
sum += tmp[i] - '0' ? (1 << (length - 1 - i)) : 0;
//cout << sum << endl;
}
return sum + (tmp[length - 1] - '0');
}
};