#include <iostream>
using namespace std;
int countOne(int n)//统计二进制表示中所含1的个数
{
int num=0;
if(n==0)
num=0;
else
{
while(n)
{
n&=(n-1);
num++;
}
}
return num;
}
int main()
{
int A,B;
cout<<"please input A and B"<<endl;
cin>>A>>B;
int C=A&B;//获取A和B中同时出现1的数
int D=A|B;//获取A和B中所有含1的数
int E=C^D;
cout<<countOne(E)<<endl;
return 0;
}
给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?
最新推荐文章于 2021-07-28 07:35:06 发布