判断一个数是否是4的幂
bool isPowerOfFour(int n) {
return n > 0 && !(n & (n - 1)) && (n & 1431655765);
}
如果一个数是2的幂,那肯定是0000010000的形式,n-1就是000011111,n&n-1就是0,如果要求4的幂,那这个1必须在奇数位上,就是与1010101&是0。
判断一个数是否是4的幂
bool isPowerOfFour(int n) {
return n > 0 && !(n & (n - 1)) && (n & 1431655765);
}
如果一个数是2的幂,那肯定是0000010000的形式,n-1就是000011111,n&n-1就是0,如果要求4的幂,那这个1必须在奇数位上,就是与1010101&是0。