1. 程式人生 > >二進制中的個數(JAVA)

二進制中的個數(JAVA)

n! bsp 一個 數加 整數 desc 個數 操作 pan

二進制中的1的個數
  

  題目描述

  輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼表示。          思路:用位運算來進行移1操作。(首先得知道數在計算機中都是以01來放置的)       1,若由一個數11100,當其減1為11011,即減1後會將該數最右邊的1變為0,且後續的所有數取反。       2,將兩數相與,則為11000,此時最右邊的1變為0了,且其他數不變。此時1個數加1。       3,重復1,2操作,直至該數變為0,此時得到該數所有1的個數。              代碼很簡單,如下。       
1     public int NumberOf1(int
n) { 2 int count = 0; 3 while(n!=0){ 4 count++; 5 n = n&(n-1); 6 } 7 return count; 8 }

 

二進制中的個數(JAVA)