__builtin_popcount(n)
Gcc提供的内建函数__builtin_popcount(n),可以精确计算n表示成二进制时有多少个1。借助这个函数可以快速判断一个数是否是2的幂。
1 bool isPowerOfTwo(int n) 2 { 3 return n>0 && __builtin_popcount(n)==1; 4 }
Gcc提供的内建函数__builtin_popcount(n),可以精确计算n表示成二进制时有多少个1。借助这个函数可以快速判断一个数是否是2的幂。
1 bool isPowerOfTwo(int n) 2 { 3 return n>0 && __builtin_popcount(n)==1; 4 }