int total1(int n)
{
if(n==0) return 0;int x=n,count=0;
while(x)
{
x=x&(x-1);
count ++;
}
}
解析:x&(x-1) 有一个特点,x-1会使原本x最右边的那个1变为0,再相与则将最右边的1去掉了,且每次去掉一个,最终x=0.
#includ
int total1(int n)
{
if(n==0) return 0;while(x)
{
x=x&(x-1);
count ++;
}
}
解析:x&(x-1) 有一个特点,x-1会使原本x最右边的那个1变为0,再相与则将最右边的1去掉了,且每次去掉一个,最终x=0.
#includ