每天一个小tips
isPowerOfTwo
判断是不是2的指数倍,2 4 8 16 32 64 …
正常思维不断除以2 直到余数为0 或者余数不为0 不为0说明不是2的指数倍。
下面利用与运算
func isPowerOfTwo(num int) bool {
return (num > 0) && num & (num-1) == 0
}
按位与操作,当num&(num-1) 为 0 时正好此时该数是2的指数倍
每天一个小tips
isPowerOfTwo
判断是不是2的指数倍,2 4 8 16 32 64 …
正常思维不断除以2 直到余数为0 或者余数不为0 不为0说明不是2的指数倍。
下面利用与运算
func isPowerOfTwo(num int) bool {
return (num > 0) && num & (num-1) == 0
}
按位与操作,当num&(num-1) 为 0 时正好此时该数是2的指数倍