方法一
思路:
- 使用异或获得两个数不同二进制数代表的十进制数
然后统计这个十进制数的二进制位上1的数目
func hammingDistance(x int, y int) int {count := 0//首先进行异或,temp := x^yfor temp != 0 {temp &= (temp - 1)count++}return count}
class Solution { public: int hammingDistance(int x, int y) { //获取两个数字异或之后的结果 int xorRet = x ^ y; //计算异或结果的二进制1的数目 int count = 0; while(xorRet != 0) { count++; //去掉二进制中最后的1位1 xorRet &= (xorRet - 1); } //返回最终的结果 return count; } };
