位运算(2)——Number of 1 Bits
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).
For example, the 32-bit integer ’11' has binary representation
00000000000000000000000000001011
, so the function should return 3.
输入:32位整数
输出:二进制中1的个数
1 public class Solution { 2 // you need to treat n as an unsigned value 3 public int hammingWeight(int n) { 4 int res = 0; 5 while(n != 0) { 6 /*if((n & 1) == 1) { //超时 7 res++; 8 n >>= 1; 9 } else { 10 n >>= 1; 11 }*/ 12 n &= (n-1); //消掉n最右边的1 13 res++; 14 } 15 return res; 16 } 17 }