一个整数二进制中 1 的个数
2019-03-11 本文已影响0人
晴天的晴q
思路:把整数减去 1,再与原整数进行 位与(&)运算,这会把整数最右边的 1 变成 0,那么一个数二进制中有多少个 1,就会做多少次这样的操作。

public static int NumberOfSolution(int n){
int count = 0;
while(n > 0){
count ++;
n = (n-1)&n;
}
return n;
}
思路:把整数减去 1,再与原整数进行 位与(&)运算,这会把整数最右边的 1 变成 0,那么一个数二进制中有多少个 1,就会做多少次这样的操作。
public static int NumberOfSolution(int n){
int count = 0;
while(n > 0){
count ++;
n = (n-1)&n;
}
return n;
}