這是小米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));
}
写评论
很抱歉,必須登入網站才能發佈留言。