编程实现:
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
输入例子:
1999 2299
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
输入例子:
1999 2299
输出例子:7
#include<stdio.h>
int main()
{
int n = 1999;
int m = 2299;
int tmp = m^n;//保存两个数字的不同 ,二进制中的1代表不同
int count = 0;
while(tmp)
{
count++;
tmp = tmp&(tmp-1);//每次取出来个1
/*
1101
1100 1100
1100
1011 1000
*/
}
printf("%d\n",count);
return 0;
}