本文主要是介绍461. Hamming DistanceI(汉明距离),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x 和 y,计算并返回它们之间的汉明距离。
问题分析
因为计算机存储数字就是采用的二进制,所以我们只需要用逻辑异或就能求出两个数字二进制的二进制不同的个数,然后采用移位得到每一个二进制位是否相同,逻辑异或之后为1代表之前的两个数字在这一位是不相同的,所以我们只需要统计新数字中二进制数中1的个数。
代码
int hammingDistance(int x, int y) {int count = 0; int num = x^y;do{count += num&1;num = num>>1;}while(num!=0);return count;
}
提交结果截图
这篇关于461. Hamming DistanceI(汉明距离)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!