码迷,mamicode.com
首页 > 其他好文 > 详细

世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么? 输入例子: 1999 2299 输出例子: 7

时间:2015-05-12 01:45:02      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:世界

这是小米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));
}

世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么? 输入例子: 1999 2299 输出例子: 7

标签:世界

原文地址:http://blog.csdn.net/zhou753099943/article/details/45653201

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!