#include&是按位与,就是把一个数写成二进制然后按位与,因为1与1为1,1与0为0,所以可以找出每个1和0,然后数出1的个数int main(){ int num=0; int count=0; scanf("%d",&num);while(num){ count++; num=num&(num-1);}printf("count=%d\n",count);return 0;}
&也可以判断num是否为2的n次方num=num&(num-1);如果num等于0,则num就为2的n次方。
本文共 316 字,大约阅读时间需要 1 分钟。
#include&是按位与,就是把一个数写成二进制然后按位与,因为1与1为1,1与0为0,所以可以找出每个1和0,然后数出1的个数int main(){ int num=0; int count=0; scanf("%d",&num);while(num){ count++; num=num&(num-1);}printf("count=%d\n",count);return 0;}
&也可以判断num是否为2的n次方num=num&(num-1);如果num等于0,则num就为2的n次方。
转载于:https://blog.51cto.com/helloleex/1699900