汇芳书院

专注计算机视觉、机器学习、分布式计算等领域, 兼聊投资、写作、生活

0%

NC144 懂二进制

描述
世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?
示例1
输入:
3,5
返回值:
2
说明:
3的二进制为11,5的二进制为101,总共有2位不同

示例2
输入:
1999,2299
复制
返回值:
7


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;
}
};

坚持原创分享,您的支持将鼓励我继续创作

欢迎关注我的其它发布渠道

------------- 本文结束,感谢阅读 如有问题可留言交流 -------------