程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 劍指offer編程題Java實現——面試題10二進制中1的個數

劍指offer編程題Java實現——面試題10二進制中1的個數

編輯:關於JAVA

劍指offer編程題Java實現——面試題10二進制中1的個數。本站提示廣大學習愛好者:(劍指offer編程題Java實現——面試題10二進制中1的個數)文章只能為提供參考,不一定能成為您想要的結果。以下是劍指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 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved