题目描述:
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。(汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。------百度百科解释)
给出两个整数 x
和 y
,计算它们之间的汉明距离。
示例:
输入: x = 1, y = 4
输出: 2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭头指出了对应二进制位不同的位置。
解题思路:
首先想到的是把两个数转成二进制,再去比较二进制的每一位,然后再做二进制转换时想到了 “ >> ” 位移运算,一个int型的数包含32个字节,不断循环的将最高位移到最后一位,然后取出最后一位进行比较,再统计结果。(对位运算这块不怎么熟练)
>> 介绍
示例:
整数i=4的二进制表示为 : 0000 0000 0000 0000 0000 0000 0000 0100
使用位移 >> 运算符