汉明距离
求x,y这两个数二进制位不同的个数
异或,x ^ y就是二进制位不同的那个数
求出x ^ y的二进制位为1的个数即可
1 | /** |
为什么n &= n-1可以去除右边的第一个1
n-1就是找到第一个为1的位,然后减去1
举例:13
1 | n 1101 -> (1101) -> (1100) -> (1000) -> 0000 |
结果就是3
求x,y这两个数二进制位不同的个数
异或,x ^ y就是二进制位不同的那个数
求出x ^ y的二进制位为1的个数即可
1 | /** |
为什么n &= n-1可以去除右边的第一个1
n-1就是找到第一个为1的位,然后减去1
举例:13
1 | n 1101 -> (1101) -> (1100) -> (1000) -> 0000 |
结果就是3