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. /**在信息理论中,两个等长字符串之间的汉明距离 * 是两个字符串对应位置上不同字符的个数, * 换句话说,汉明距离就是将一个字符串替换成另外一个字符串所需要替换的字符长度。 *例如,1011101和1001001之间的汉明距离是2, *toned和roses之间的汉明距离是3. *汉明重量是字符串相对于同样长度的零字符串的汉明距离, *也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是 1 的个数, *所以 11101 的汉明重量是 4。 *下面的代码展示了在Java中如何计算汉明距离和汉明重量。 */ public int hammingDistance(int x, int y) { int n=x^y; int count=0; while(n != 0){ ++count; n=(n-1)&n; } return count; }