题目:颠倒给定的 32 位无符号整数的二进制位。
代码:
uint32_t reverseBits(uint32_t n) { uint32_t m=0; for(int i=0;i<32;i++){ m<<=1; if((n&1)==1) m+=1; n>>=1; } return m; }
算法解释:
N首先和1与运算,拿到最后一位,加到M上。然后M向左移一位。这样移动32次,刚好得到想要的结果。