输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n

//把一个整数减去1之后再和原来的整数做位与运算,得到的结果相当于是把整数的二进制表示中的最右边一个1变成0 

int  Test(int m, int n)

{

int Count = 0;

 //  1010  ^ 1101  0111
// 一、异或 计算出m和n之间不同的个数

int num = m^n;

//二、统计异或中1的个数

while (num)

{
++Count;

num = (num-1)#

}

return Count;

}

猜你喜欢

转载自blog.csdn.net/weixin_40222745/article/details/78904449