public int hammingDistance(int x, int y) {
int hamming = x ^ y;
int cnt = 0;
while(hamming > 0){
hamming = hamming & (hamming - 1);
cnt++;
}
return cnt;
}
第一句相异还明白的,但是当hamming大于0,然后用hamming去和hamming-1按位相和就不懂了,为什么这样就能算出来?