给两个数,算出两个数不同位一共有多少个。
使用异或操作,相同为1,不同为0,然后遍历一次,每次右移一位,然后与1与,如果等于1,表示这位为1。效率还可以
int hammingDistance(int x, int y) {
int ttt = x ^ y;
int result = 0;
int i ;
for( i = 1; i < 32; ++i)
{
int t = ttt & 1;
if ( t == 1)
{
result ++;
}
ttt = ttt >> 1;
}
return result;
}