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<2310≤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.
题目大意
汉明距离就是两个数中对应位数字不相同的总位数。
解题思路
对两个数进行异或,然后统计异或后的数字中有多少个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;
}
};
备注:如有错误,请批评指正
本文介绍如何计算两个整数之间的汉明距离,通过异或运算找出不同位的数量,并提供了一个简单的C++实现。
406

被折叠的 条评论
为什么被折叠?



