題幹
輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼表示。
關鍵字:進制轉化,補碼反碼原碼
我的思路
在看解析之前,完全沒思路,沉住氣直接看解析吧。
大佬解析
public class Solution {
public int NumberOf1(int n) {
int num = 0, flag = 1;
while (flag != 0) {
if ((n & flag) != 0) {
num++;
}
flag <<= 1;
}
return num;
}
}
public class Solution {
public int NumberOf1(int n) {
int num = 0;
while (n != 0) {
num++;
n &= (n - 1);
}
return num;
}
}