这道题,好多都知识都没用过,只是知道,看了答案才知道这么用,基础太差了,打算看看软考书,查缺补漏,大学其实都学了,就是没有好好听,哈哈哈哈哈,大学我真的听了,可是没有悟进去,就是听不明白,大学专业课基本我都没逃过,套的都是心理啊、马克思啊什么的,还念大学,今年6月份看看跟女友回哈尔滨去大学溜达溜达,还有中央大街,哈哈哈。io
| 其中一个为1,返回1,&都为1,返回1class
class Solution {
public int hammingDistance(int x, int y) {
/*相同为0不一样为1,基础
只要统计出1出现的次数,就能够获得汉明距离。二进制
*/
int tag = x ^ y;
int count = 0;
while(tag >0){统计
/*注释
& 并运算,0 & 0 = 0,0 & 1 = 0,1 & 1 = 1;while
因此tag & 0101,就能获得最后一位是否是1,由于1的二进制0001前面都是0,因此直接忽略co
0101中的前三位010,只考虑最后一位1return
好比异或结果为0101,tag
*/
if((tag & 1) == 1) ++count;
tag = tag>>1;
}
return count;
}
}
基础很差,因此我想了很久才想明白,第二个注释才与^运算才是重点。加油,今年要加薪。努力中