[面试题]bit位数

题目描述

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

输入描述:

一行中给定两个数字

输出描述:

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

示例1

输入

15 8

输出

3

 

//利用移位的思想解决本题
#include
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 <

 

你可能感兴趣的:(面试题)