因为2的幂换算成二进制数,有一个特点,就是首尾是1,其余位均是0,故可以把该数减1,然后和该数做位运算,结果是0 代码如下: function is_num($num){ return (($num-1)&$num)==0; }