判斷有符號 32 位整數 num 是否為 4 的冪次方(即 4^k, k ≥ 0)。
num > 0 && (num & (num-1)) == 0。num & 0x55555555 != 0(0x55555555 = 01010101...0101,奇數位為 1)。bool isPowerOfFour(int num) {
if (num <= 0) return false;
if (num & (num - 1)) return false; // 非 2 的冪
if (num & 0x55555555) return true; // 1 在奇數位
return false;
}
4^k % 3 = 1^k % 3 = 1。2 的冪中,僅 4 的冪滿足 num % 3 == 1。return num > 0 && (num & (num-1)) == 0 && num % 3 == 1;4^0 ~ 4^15),預存集合查找。O(1),位運算常數時間。O(1)。判斷 4 的冪結合了「2 的冪特徵」與「1 位置奇偶性」,展示了位運算在數學屬性判斷中的強大表達力。掌握 0x55555555、0xAAAAAAAA 等掩碼模式,可解決「2 的冪、4 的冪、奇偶位檢測」等系列問題。