题目描述
两个int32整数m和n的二进制表达,计算有多少个位(bit)不同?
输入描述:
一行中给定两个数字
输出描述:
输出这两个数字中bit不同的个数
示例1
输入
15 8
输出
3
//利用移位的思想解决本题
#include<iostream>
using namespace std;
int main()
{
int flag1=0,flag2=0;
int n,m;
int count = 0;
cin >> n >> m;
if(n > m)
{
while(n)
{
flag1 = n & 1;
flag2 = m & 1;
if(flag1 != flag2)
{
count ++;
}
n >>= 1;
m >>= 1;
}
}
else
{
while(m)
{
flag1 = n & 1;
flag2 = m & 1;
if(flag1 != flag2)
{
count ++;
}
n >>= 1;
m >>= 1;
}
}
cout << count <<endl;
}