码迷,mamicode.com
首页 > 其他好文 > 详细

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

时间:2017-07-23 14:28:28      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:数字   一个   class   输出   for   位运算   ++   统计   index   

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++;

  

 

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

标签:数字   一个   class   输出   for   位运算   ++   统计   index   

原文地址:http://www.cnblogs.com/CloudStrife/p/7224374.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!