zoukankan      html  css  js  c++  java
  • 剑指offer编程题Java实现——面试题10二进制中1的个数


    题目:

    请实现一个函数,输入一个整数,输出该整数二进制表示中1的个数。例如,把9表示成二进制是1001,有2位是1,该函数输出2
    解法:把整数减一和原来的数做与运算,会把该整数二进制表示中的最低位的1变成0,与运算进行多少次就有多少个1。

     1 package Solution;
     2 /**
     3  * 剑指offer面试题10:二进制中1的个数
     4  * 题目:请实现一个函数,输入一个整数,输出该整数二进制表示中1的个数。
     5  * 例如,把9表示成二进制是1001,有2位是1,该函数输出2
     6  * 解法:把整数减一和原来的数做与运算,会把该整数二进制表示中的最低位的1变成0,与运算进行多少次就有多少个1
     7  * @author GL
     8  *
     9  */
    10 public class No10BitOperation {
    11 
    12     public static void main(String[] args) {
    13         int number1=11;
    14         System.out.println("整数11的二进制中1的个数为:"+numberOfOne(number1));
    15         //Java中的int类型整数由4字节32位组成
    16         int number2=-11;
    17         System.out.println("整数11的二进制中1的个数为:"+numberOfOne(number2));
    18 
    19 
    20     }
    21     public static int numberOfOne(int number){
    22         int count=0;
    23         
    24         while(number!=0){
    25             count++;
    26             number=number&(number-1);
    27         }
    28         return count;
    29     }
    30 
    31 }
  • 相关阅读:
    LNK2001: unresolved external symbol ... virtual ...
    pygments
    cygwin Mingw
    [转]__attribute__((format (printf, 2, 3))
    [转] C和C++混合编程
    [转]网络包的流转
    [转]程序是如何运行起来的
    [转]Makefile中 .PHONY的作用
    [转]makefile学习
    [转] makefile 中 = := ?= += 区别
  • 原文地址:https://www.cnblogs.com/gl-developer/p/6475363.html
Copyright © 2011-2022 走看看