汉明距离的概念
汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量
异或的理解:
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
题目思路 如果 a^b 就可以得到 a 和 b 相同位 的不同值 会变为1
接下来就可以 数 1 的个数就 可以 算出汉明距离
public static int hammingDistance(int x, int y) { int mark=0; int a=x^y; String b=Integer.toBinaryString(a); for(int i=0;i<b.length();i++){ if (b.charAt(i)=='1') mark++; } return mark;}
方法2:
异或完后用Integer.bitCount(int)