12.Hamming Distance(汉明距离)
Level:
Easy
题目描述:
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:
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.
思路分析:
汉明距离指的是两个数的二进制形式中对应位数值不同的数目。因此我们将两个数相异或,那么异或结果的二进制形式中非零位的个数就是汉明距离。
代码:
class Solution {
public int hammingDistance(int x, int y) {
int xor=(x^y);
int t=1;
int res=0;
while(t>0){
if((xor&t)!=0)
res++;
t<<=1;
}
return res;
}
}