n&(n-1)的结果:n最右边的1变成0,比如n为6 110&101-》100 循环直到n为0为止
class Solution { public int NumberOf1(int n){ int count=0; while(n!=0){ n=n&(n-1); count++; } return count; } }
负数最开始的符号位也可以消去吗
棒
巧妙
负数最开始的符号位也可以消去吗
棒
巧妙