您的位置:首页 > 其它

两个int(32位)整数a和b的二进制表达中,有多少个位(bit)不同

2017-11-24 15:40 274 查看

两个数进行异或,得到的数然后进行判断这个数的二进制位有多少个1即可。

#include<stdio.h>
#include<stdlib.h>

int main()
{
int a = 0;
int b = 0;
int count = 0;//对位数计数
int count1 = 0;//计不相同的位
int num = 0;
int arr[32] = {0};
int i = 0;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
num = a^b;
while(num)
{
arr[i]= num % 2;
num = num / 2;
i++;
count++;
}
for (i=0;i<=count;i++)
{
if(1 == arr[i])
{
count1++;
}
}
printf("不相同的位有:%d位\n",count1);
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐