题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
题解一
转换为字符串处理
public class Solution {
public int NumberOf1(int n) {
char[] c = Integer.toBinaryString(n).toCharArray();
int count = 0;
for(int i = 0;i<c.length;i++) {
if(c[i] == '1') {
count++;
}
}
return count;
}
}
题解二
无符号右移,判断每一位上的数字
public class Solution {
public int NumberOf1(int n) {
int count = 0;
while(n != 0) {
if((n & 1) == 1) {
count++;
}
n = n>>>1;
}
return count;
}
}