爱悠闲 > 第18题 比较两个整数比特位不同的数量

第18题 比较两个整数比特位不同的数量

分类: 面试题  |  标签: integer,output,function,c  |  作者: stevemarbo 相关  |  发布日期 : 2012-11-05  |  热度 : 398°

此题来自 cracking the coding interview

write a function to determine the number of of bits required to convert integer A to integer B

input: 31, 14

output: 2




#include<stdio.h>

int count(int a, int b)
{
	int c=0;
	int x;
	for(x=a^b; x!=0; x=x>>1)
		c += x&1;

	return c;
}

int main()
{
	int a = 31;
	int b = 14;
	printf("%d\n",count(31,14));
}
关于位运算操作,经常会用到异或,xor