思路:把整数减去 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;
}
本文标题:一个整数二进制中 1 的个数
本文链接:https://www.haomeiwen.com/subject/fnripqtx.html
网友评论