bit位数

/*

题目描述

两个int32整数m和n的二进制表达,计算有多少个位(bit)不同?

输入描述:

一行中给定两个数字

输出描述:

输出这两个数字中bit不同的个数
示例1

输入

复制
15 8

输出

复制
3

*/

#include<stdio.h>
int main(int argc,char *argv[])
{
    int m[32]={0},n[32]={0};
    int a,b,cnt,t,i;
    scanf("%d %d",&a,&b);
    cnt=0;
    while(a)
    {
        t=a%2;
        a/=2;
        m[cnt++]=t;
    }
    cnt=0;
    while(b)
    {
        t=b%2;
        b/=2;
        n[cnt++]=t;
    }
    int result=0;
    for(i=0;i<32;i++)
    {
        if(m[i]!=n[i])
        {
            result++;
        }
    }
    printf("%d\n",result);
    return 0;
}

posted on 2019-04-14 22:37  redOrange01  阅读(160)  评论(0编辑  收藏  举报