编程之美二进制一的个数

编程之美关于求一个整数二进制数一的个数后面的一道思考题。

1.A和B两个数,将A变成B,所需要改变的数字个数(二进制数)。

异或求出异或值二进制包含的1的个数。

#include <stdio.h>

int func(int A, int B)
{
int M= A ^ B;
int num=0;
printf(
"%d\n",M);
while(M!=0)
{
M
&= (M-1);
num
++;
}
return num;
}

int main()
{
int A, B;
A
=0x10;
B
=0x11;

printf(
"%d\n", func(A,B));

return 0;
}

2.求一个数是否为2的整数次幂

if(x&(x-1)==0)

posted @ 2011-07-05 09:17  westfly  阅读(178)  评论(0编辑  收藏  举报