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

来源:互联网 发布:c语言表白情书作品 编辑:程序博客网 时间:2024/05/20 01:36

两个数进行异或,得到的数然后进行判断这个数的二进制位有多少个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;}
阅读全文
0 0
原创粉丝点击