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的数目;

JAVA CODE
public class Solution {
    public int hammingDistance(int x, int y) {
        // 异或运算
        int m = x^y;
        int count = 0;
        while(m!=0){
            // 与1进行与运算,为1都表示末位为1.然后进行右移运算。注意与运算优先级高于比较运算符,要加括号
            if((m & 1)==1) count++;
            m = m >> 1;
        }
        return count;
    }
}

 

posted @ 2017-08-14 08:07  白常福  阅读(145)  评论(0编辑  收藏  举报