剑指offer编程题Java实现——面试题10二进制中1的个数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指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 }

 



以上是关于剑指offer编程题Java实现——面试题10二进制中1的个数的主要内容,如果未能解决你的问题,请参考以下文章

[剑指offer]面试题10:二进制中1的个数

剑指offer编程题Java实现——面试题7相关题用两个队列实现一个栈

剑指offer编程题Java实现——面试题14调整数组顺序使奇数位于偶数之前

剑指offer编程题Java实现——面试题12相关题大数的加法减法乘法问题的实现

剑指offer面试题 15. 二进制中 1 的个数

剑指offer面试题-Java版-持续更新