190. 颠倒二进制位(位运算)
题目
190. 颠倒二进制位 相似题目191. 位1的个数
思路
因为是32位的系统,所以就取出二进制的最后一位数字,然后把他通过左移移到开头就行。 1 & 二进制数字: 取出最后一位 注意:位运算,左移右移的优先级比或和非要高。
代码
public class Solution {
// you need treat n as an unsigned value
public int reverseBits(int n) {
int a = 0;
for (int i = 0; i < 32; i++) {
a+= (1 & (n >> i)) << (31 - i);
}
return a;
}
}
共有 0 条评论