[leetcode]190.Reverse Bits

题目

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.

解法

思路

运用位运算。。

代码

public class Solution {
    // you need treat n as an unsigned value
    public int reverseBits(int n) {
        int res = 0;
        for(int i = 0; i < 32; i++) {
            res <<= 1;
            res |= (n&1); //这里写res += (n&1);也是可以的,实质也是操作最后一位运算符。
            n >>= 1;
        }
        return res;
    }
}
posted @ 2018-10-11 10:57  shinjia  阅读(82)  评论(0编辑  收藏  举报