1. 判断一个整数是否是2的N次方?
bool foo(int n) { if(n == 0) return true; if(n < 0) return false; return !(n&n-1); }
int foo(int n) { int nCount = 0; while(n) { nCount++; n = n&(n-1); } return nCount; }