還是太不熟悉了,考慮移動的事,首先想到的事怎麼轉換成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