输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
public class Solution { public int NumberOf1(int n) { int index = 1; int number = 0; while(index!=0){ if((n & index)!=0) number++; index = index << 1; } return number; } }
先上第一种
两种方法。第一种,是用位运算,将1每次左移,和数字进行&运算,如果成功,则返回1.
第二种,将整数通过方法转换为二进制数,然后统计其中1的数量
第二种
int number = 0; String string = Integer.toBinaryString(n); char[] chars = string.toCharArray(); int i = 0; for( ; i < string.length() ; i++){ if(chars[i]=='1') number++; } return number++;