计算数字二进制有多少个1——lowbit
lowbit
在计算数字二进制表示中有多少个1的时候,可以使用lowbit来表示。每次找到数的最后一个1的大小。
x&(-x)具体代码为
int num1count(int x) { int m = 0; for (; x; x -= x & (-x)) { m++; } return m; }核心在于
for(;x;x-=x&(-x)){ m++; }
如有错误,欢迎指正。
在计算数字二进制表示中有多少个1的时候,可以使用lowbit来表示。每次找到数的最后一个1的大小。
x&(-x)具体代码为
int num1count(int x) { int m = 0; for (; x; x -= x & (-x)) { m++; } return m; }核心在于
for(;x;x-=x&(-x)){ m++; }