461. Hamming Distance

链接

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 }            

 



posted @ 2017-03-12 13:11  zyoung  阅读(138)  评论(0编辑  收藏  举报