小练习:计算汉明距离
1.汉明距离概念简析
汉明距离,从二进制方面来看,就是两个等长字符串的二进制对应 bit 不相同的位个数,例如
1011 1000 //汉明距离为2 1100 1010 //汉明距离是2
2.计算汉明距离的算法
思路:
01.将两个给定的数进行 异或(^)运算后保存在变量a,汉明距离就是a的二进制中1的个数
02.当a不为0时,和0x01进行 按位与(&)运算,如果结果为1,则统计变量加一
03.将a右移一位,重复第02步
代码:
class Solution { public: int hammingDistance(int x, int y) { int cnt = 0; x=x^y; while(x!=0) { if(x&0x01) cnt++; x=x>>1; } return cnt; } };
------------ 转载请注明出处 ------------