11.二进制中1的个数
题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
题目解答
public class Solution { public int NumberOf1(int n) { int count=0; while(n!=0){ count++; n=n&(n-1); } return count; } }
举例:
1100
1100-1=1011
1100&1011=1000,count+1
有多少个1,就能&多少次(相同为1)
public class Solution { public int NumberOf1(int n) { int count=0; while(n!=0){ count++; n=n&(n-1); } return count; } }
举例:
1100
1100-1=1011
1100&1011=1000,count+1
有多少个1,就能&多少次(相同为1)