Reverse bits of a given 32 bits unsigned integer.
Example:
Input: 43261596
Output: 964176192
Explanation: 43261596 represented in binary as 00000010100101000001111010011100,
return 964176192 represented in binary as 00111001011110000010100101000000.
这一道题,主要是回顾了java移位运算符,>> ,<< 和>>>的用发和区别,注意& 和 == 的运算符优先级。
public class Solution {
// you need treat n as an unsigned value
public int reverseBits(int n) {
int result = 0;
for(int i = 0; i < 32; i++){
result <<= 1;
if((n & 1) == 1){
result++;
}
n >>= 1;
}
return result;
}
}