X & (-X):取出一个数的二进制中的最后一个1;
int abs( int x )
{
int y ;
y = x >> 31 ;
return (x^y)-y ; //or: (x+y)^y
}
int Count(int n)
{
int num=0;
while(n)
{
n&=(n-1);
num++;
}
return num;
}
(待更新.......)
X & (-X):取出一个数的二进制中的最后一个1;
int abs( int x )
{
int y ;
y = x >> 31 ;
return (x^y)-y ; //or: (x+y)^y
}
int Count(int n)
{
int num=0;
while(n)
{
n&=(n-1);
num++;
}
return num;
}
(待更新.......)