【Leetcode190】Reverse Bits

還是太不熟悉了,考慮移動的事,首先想到的事怎麼轉換成string,這是完全沒必要的啊,uint32_t就可以直接<<, >>

很直接的想法,原bits自右向左遍歷,新數組自左向右填充數字

爲了遍歷,可以直接用&1獲取最後一位,配合>>1,始終讓自己想要的那一位在最後

對新bits的操作也是,先左移預置新的要操作的這一位爲0,根據需要再變換成1,變換成1的方法就是整個bits+1,很直接,要多熟悉 

class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t answer = 0;
        for(int index = 0; index < 32; ++index){
            answer <<= 1;
            if(n & 1 == 1){
                answer += 1;
            }
            n >>= 1;
        }
        return answer;
    }
};

按網友的說法叫bits操作類的題目https://www.cnblogs.com/grandyang/p/4321355.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章