NC144 懂二进制
· 约 1 分钟阅读 · – 次阅读
leetcode
描述 世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么? 示例1 输入: 3,5 返回值: 2 说明: 3的二进制为11,5的二进制为101,总共有2位不同
示例2 输入: 1999,2299 复制 返回值: 7
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param m int整型
* @param n int整型
* @return int整型
*/
int countBitDiff(int m, int n) {
int ans = 0;
// 按位异或,不同的位变为1
int tmp = m ^ n;
while (tmp) {
tmp &= (tmp-1);
ans++;
}
return ans;
}
};