1. 程式人生 > >Reverse Bits問題及解法

Reverse Bits問題及解法

問題描述:

Reverse bits of a given 32 bits unsigned integer.

示例:

given input 43261596 (represented in binary as00000010100101000001111010011100), return 964176192 (represented in binary as00111001011110000010100101000000).

問題分析:

這個題類似於把一個整數翻轉,只不過整數那個對應的是十進位制,而本題對應二進位制。

過程詳見程式碼:

class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t res = 0;
        uint32_t flag = 1;
        for(int i = 0;i < 32;i++)
        {
        	res = res * 2 + (flag & n);
        	n = n >> 1;
		}
		return res;
    }
};