您的位置:首页 > 其它

Bit Manipulation-----190. Reverse Bits&&191. Number of 1 Bits

2017-08-22 00:17 274 查看

190

原题目

参考

这题比较有意思,我还以为需要使用String,但是发现还原回来的时候很有肯能引起溢出,没想这么简单

public int reverseBits(int n) {
int result = 0;
if (n == 0) {
return result;
}

for (int i = 0; i < 32; i++) {
int temp = n & 0x01;//取最后一位数字
result = (result << 1) | (temp);//把最后一位数字加到重新以零开始的数的后面(相当于心数字的前面)
n >>= 1;//继续
}
return result;
}


191

思路就是取出每一个位和1进行比较就是了,怎么取出尼,有两种方法:一种是使用Integer.toBinaryString()方法,一种是就是使用上面问题的解决办法

public int hammingWeight(int n) {

int result = 0;
for (int i = 0; i < 32; i++) {
int temp = n & 0x01;
if (temp == 1) {
result++;
}
n >>= 1;
}
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: