世界上有10種人,一種懂二進位制,一種不懂。那麼你知道兩個int32整數m和n的二進位制表達,有多少個位(bit)不同麼? 輸入例子: 1999 2299 輸出例子: 7

NO IMAGE

這是小米2015年暑假實習生第一道筆試題,其實不難,主要用到移位操作和或運算子就可以搞定,具體程式碼如下:

/*世界上有10種人,一種懂二進位制,一種不懂。那麼你知道兩個int32整數m和n的二進位制表達,有多少個位(bit)不同麼? 
輸入例子:
1999 2299
輸出例子:
7
*/
#include<stdio.h>
int countBitDiff(int m, int n) 
{
int data=1;
int a,b;
int count=0;
for(int i=0;i<31;i  )
{
a=m&data;
b=n&data;
if(a!=b)
{
count  ;           
}
m=m>>1;
n=n>>1;
}
return count;	
}
void main()
{
printf("-->%d\n",countBitDiff(1999,2299));
}