天天看點

微軟100題-天天做-第28題

28.整數的二進制表示中1的個數(運算)

題目:輸入一個整數,求該整數的二進制表達中有多少個1。

例如輸入10,由于其二進制表示為1010,有兩個1,是以輸出2。

分析:

這是一道很基本的考查位運算的面試題。

包括微軟在内的很多公司都曾采用過這道題

package com.microsoft;

public class IntegerByteCount {

  public static void main(String[] args) {
    int a=189;
    int count=0;
    while(true){
      int b=a%2;
      if(b==1){
        count++;
      }
      a=a/2;
      if(a==0){
        break;
      }
    }
    System.out.println(count);

  }

}