/* 判断一个整数是不是2的整数幂 */
bool is_power_of_two(int x)
{
return !x & (x - 1); /* bug here, can you fix it?? */
}
利用的基本思想是
(x & (x - 1) /* 能够消除x的二进制表示中最低位的1 */
(x > 0) && !(x & (x - 1))
/* 判断一个整数是不是2的整数幂 */
bool is_power_of_two(int x)
{
return !x & (x - 1); /* bug here, can you fix it?? */
}
利用的基本思想是
(x & (x - 1) /* 能够消除x的二进制表示中最低位的1 */
(x > 0) && !(x & (x - 1))