两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数x和y,计算并返回它们之间的汉明距离。
示例 1:输入:x = 1, y = 4 输出:2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭头指出了对应二进制位不同的位置。
示例 2:输入:x = 3, y = 1 输出:1
提示:
0<=x,y<=2^31-1
前言
汉明距离广泛应用于多个领域。在编码理论中用于错误检测,在信息论中量化字符串之间的差异。
两个整数之间的汉明距离是对应位置上数字不同的位数。
根据以上定义,我们使用异或运算,记为⊕,当且仅当输入位不同时输出为1。
方法一:内置位计数功能
思路及算法
大多数编程语言都内置了计算二进制表达中1的数量的函数。在工程中,我们应该直接使用内置函数。
class Solution {
public int hammingDistance(int x, int y) {
return Integer.bitCount(x ^ y);
}
}
IDEA中测试:
public class Main {
public static void main(String[] args) {
int a = 9;
int b =