461. Hamming Distance

The Hamming distance between two integers is the number of positions at which the corresponding bits are different.

Given two integers x and y, calculate the Hamming distance.

Note:
0 ≤ xy < 231.

Example:

Input: x = 1, y = 4

Output: 2

Explanation:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑

The above arrows point to positions where the corresponding bits are different.
含义:求两个数字的汉明距离
思路:先进行按位易或运算,不同的位结果为1,然后计算1个个数
 1     public int hammingDistance(int x, int y) {
 2          // return Integer.bitCount(x^y);       
 3           int res = 0, exc = x ^ y;
 4         // for (int i = 0; i < 32; ++i) {
 5         //     res += (exc >> i) & 1;
 6         // }
 7         
 8         while (exc!=0) {
 9             ++res;
10             exc &= (exc - 1); //消除最后一位1
11         }        
12         return res;
13     }