461. Hamming Distance
链接
题意
求两个数的二进制格式,相对应位相异的位数
思路
充分运用位运算,循环比较相对应位是否一致。结束条件为某一个数比较完成(即移位后为0)
x&1即取x二进制格式最后一位数。对x和y的最后一位进行对比(^),若结果为1则加1。
代码
1 int hammingDistance(int x, int y) { 2 int count = 0; 3 while(x || y) { 4 if((x&1)^(y&1)) { 5 count++; 6 } 7 x>>=1; //移位 8 y>>=1; 9 } 10 return count; 11 }