461. Hamming Distance

Description

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 ≤ x, y < 231.

Example 1:

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、要找汉明距离,也就是两个码字的对应位不同的数量
2、对x、y进行按位异或,结果就是对应位不同的位置为1,相同的为0
3、计算异或的结果含有1的个数
4、每次都是查看最低位是不是1,然后再无符号右移1位,再次查看下一位即可
5、int为32位查看32次

class Solution {
    public int hammingDistance(int x, int y) {
        int num = x ^ y;
        int count = 0;
        int moves = 32;
        while((moves--) > 0){
            if((num & 1) == 1){
                count++;
            }
            num = num >>> 1;
        }
        return count;
    }
}
原文地址:https://www.cnblogs.com/zhuobo/p/10606076.html