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).
Follow up:If this function is called many times, how would you optimize it?
Related problem: Reverse Integer
这个题目不知道是怎么把2^31当成integer传进来不报错的。。。
public class Solution {
// you need treat n as an unsigned value
public int reverseBits(int m) {
long r=0;
long n=Long.parseLong(String.valueOf(m));
for(int i=0;i<32;i++)
{
r*=2;
r+=n%2;
n/=2;
}
return (int)r;
}
}