Q:
Reverse bits of a given 32 bits unsigned integer.
For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000).
输入一个无符号整数,将其首尾颠倒,并输出
solution:
这里面要注意的问题与上题一样,需要将无符号整数转化为long型,不然转化为二进制时,当有32位时会出现错误。
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
long ans=0;
long m =n;
for(int i=0;i<=31;i++){
if((m>>i)&1==1)ans+=(1<<(31-i));
}
return ans;
}
};