Reverse bits of a given 32 bits unsigned integer.

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++) {
            if (((n >> i) & 1) == 1) {
                result |= 1 << (31 - i);
            }
        }
        return result;
    }
}
class Solution:
    def reverseBits(self, n):
        # @param n, an integer
        # @return an integer

        ret = 0
        for i in range(32):
            if (n >> i) & 1:
                ret |= 1 << (31 - i)
        return ret