编程之美上也有这道题,但是个人觉得讲的并不是易懂,之后我在剑指offer上看到这道题看一遍就懂了;
知识提取:
一个整数n和n-1的与运算,获得整数n的二进制数最右边的1变0;
int NumberOf1( int n ) { int num=0; while( n ) { n&=n-1; num++; } return num; }
详细内容参考剑指offer