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≤x,y<231 0 ≤ x , y < 2 31
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。因为两个相同的数异或的结果是0,不同的数异或的结果是1.
C++代码
class Solution {
public:
int hammingDistance(int x, int y) {
int tmp = x ^ y;
int result = 0;
while( tmp > 0 ){
if( tmp & 1 == 1 )
++ result;
tmp = tmp >> 1;
}
return result;
}
};
备注:如有错误,请批评指正