用按位與(&)判斷奇偶數
奇數用二進制表示,最后一位永遠是1,偶數用二進制表示,最后一位永遠是0。
按位與會在兩個數值的對應位都是1時返回1,任何一位是0,則返回0。
所以我們只要將要操作的數字與1進行按位與運算,就能知道該數字用二進制表示時,最后一位是1還是0。
25 = 0000 0000 0000 0000 0000 0000 0001 1001
1 = 0000 0000 0000 0000 0000 0000 0000 0001
---------------------------------------------
AND = 0000 0000 0000 0000 0000 0000 0000 0001 // 結果
num&1 = 1; // 奇數
num&1 = 0; // 偶數
使用按位異或來交換兩個數字
let a = 1;
let b = 2;
a^=b;
b^=a;
a^=b;
console.log(a, b) // 2,1
判斷一個數字是不是2的n次方
function isPowerOfTwo(num){
return num&( num - 1 ) === 0 && num!== 0
}