Reverse Bits問題及解法
阿新 • • 發佈:2019-01-05
問題描述:
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; } };