关于Java的一道题:"求二进制数中1的个数"的解法整理

原创 2013年12月04日 22:16:00

package com.accp;

/**
 * 求二进制数中1的个数
 *
 * @author Administrator
 *
 */
public class BinaryConversion {

 /**
  * 解法一 通过相除和判断余数的值的方法计算
  *
  * @param num
  *            传入的数字
  * @return 二进制数1的个数
  */
 public static int CountOne(int num) {
  int counter = 0;
  while (num > 0) {
   if (num % 2 == 1) {
    counter++;
   }
   num = num / 2;
  }

  return counter;
 }

 /**
  * 解法二 位操作
  *
  * @param num
  * @return
  */
 public static int Counttow(int num) {
  int counter = 0;
  while (num > 0) {
   counter += num & 0X01;
   num >>= 1;
  }
  return counter;
 }

 /**
  * 解法三
  *
  * @param num
  * @return
  */
 public static int CountThree(int num) {
  int counter = 0;
  while (num > 0) {
   num = num & (num - 1);
   counter++;
  }
  return counter;
 }

 省略:

 // 解法四:分支操作
 // 解法五:查表法
 /**
  * 测试
  *
  * @param args
  */
 public static void main(String[] args) {

  System.out.println(CountOne(5));// 结果:2
  System.out.println(CountThree(31));// 结果:5
  System.out.println(Counttow(32));// 结果:1
 }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JAVA实现输入一个整数,输出该数二进制表示中1的个数(《剑指offer》)

题目: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 这个题目有个比较有意思并且被公认的解法,我就先贴答案吧: public class Solution { ...

Java求一个整数的二进制中1的个数

常规解法。 思路:将整数n与1进行与运算,当整数n最低位是1时,则结果非零,否则结果为0。 然后将1左移一位,继续与n进行与运算,当次低位是1时,结果非零,否则结果为0。 ...

编程之美-求二进制数中1的个数方法整理

【试题描述】 方法一:穷举法(暴力搜索) 方法二:使用位操作 方法三: 方法四:使用分支操作 方法五:查表法,时间复杂度O(1...

编程之美求二进制数中1的个数扩展题

转自:http://s.sousb.com/?p=253 编程之美2.1节中的扩展题第1题:如果变量是32位的Dword,则如何统计该二进制数中1的个数。 对于该题,原本的想法还是想采用书...

求二进制数中1的个数.pdf

  • 2011年12月03日 12:13
  • 257KB
  • 下载

求二进制中1的个数----Java实现

问题描述:给出一个整数,输出这个整数的二进制表示中1的个数。 算法思路1:(移位)第一步:判断二进制表示中最后一位是不是1,如果是1,计数器加1,否则不加;第二部:丢掉最后一位,继续递归第一步,直到这...
  • Emira_J
  • Emira_J
  • 2016年04月22日 09:20
  • 647

“求二进制数中1的个数”

【一】“求二进制数中1的个数”的几种方法 转自[http://blog.csdn.net/justpub/article/details/2292823]   求二进制中1的个数。对于一个字...
  • yockie
  • yockie
  • 2012年07月25日 17:31
  • 1934

位运算应用一:求一个数的二进制表示中1的个数

上一篇文章中,我们提到了位运算这个概念,在这里我们试着使用位运算来统计一个数的二进制表示中1的个数...

求二进制数中1的个数(编程之美)

求二进制数中1的个数继京东618店庆时买的《编程之美》这本书,翻了翻,发现里面的题还是挺有意思的,看起来我们觉得很简单的题目,解法却有很多很多种,真是一个比一个巧妙,于是,决定记录一下。书中的题目如下...

求二进制数中1的个数(很强大的分析)

算法-求二进制数中1的个数 连接:http://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html 问题描述 任...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Java的一道题:"求二进制数中1的个数"的解法整理
举报原因:
原因补充:

(最多只允许输入30个字)