劍指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 }