2015小米暑期实习笔试题_懂二进制(位运算)

来源:互联网 发布:当前网络环境的问题 编辑:程序博客网 时间:2024/05/05 18:28

总共3道题,最后一道还没AC出来。。。


世界上有10种人,一种懂二进制,一种不懂。
那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么? 
输入例子:


1999 2299


输出例子:


7


此题解法类似于《编程之美》上面看到的某题


代码:

#include <iostream>using namespace std;int countBitDiff(int m, int n) {int sum=0;for(int i=0;i<32;i++)if((m>>i & 0x1) != (n>>i & 0x1))sum++;return sum;}int main(){int n,m;cin>>n>>m;cout<<countBitDiff(n,m)<<endl;return 0;}




2 2