编程之美关于求一个整数二进制数一的个数后面的一道思考题。
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)