public class Solution {
public int reverseBits(int n) {
int ans = 0;
for (int i = 0; i < 32; i++) {
//n & 1 获取n末尾的一位(1 & 1 返回 1,0 & 1 返回 0)
//然后放大,左移31 - i位,从最低位变成最高位
ans |= (n & 1) << (31 - i);
//每次循环后,n向右移一位即缩小一倍
n = n >> 1;
if(n == 0) break;
}
return ans;
}
}
颠倒二进制位
最新推荐文章于 2024-10-17 11:39:06 发布