private static bool GetFlag(int num)
{
if (num < 1) return false;
return (num & num - 1) == 0;
}
&:按位与,两个数都为1的时候才为1,若有一个不为1,则结果为0
例如:我们输入一个数字8,那num-1就是7,现在按位与8&7
8的二进制: 1 0 0 0
7的二进制: 0 1 1 1
&的结果 : 0 0 0 0 转换成十进制 = 0