JavaScript位運算
阿新 • • 發佈:2021-10-24
//按位非(NOT) function NOT() { let num1 = 25; let num2 = ~num1;//-26 類似於 -n-1 console.log(num2); } //按位與(AND) //把左右兩邊的數字轉化為二進位制,然後每一位分別進行比較,如果相等就為相等的數(0||1),不相等即為0 function AND() { let num1 = 25; // num1=num1.toString(2); //11001 let num2 = 3; // num2=num2.toString(2);//00011 console.log(num1 & num2); } //按位或(OR) //把左右兩邊的數字轉化為二進位制,然後每一位分別進行比較,如果相等就為相等的數(0||1),不相等即為1 function OR() { let num1 = 25; let num2 = 3;//11011 console.log(num1 | num2);//27 } //按位異或(XOR) //把左右兩邊的數字轉化為二進位制,然後每一位分別進行比較,如果相等就為0,不相等即為1 function XOR() { let num1 = 25; let num2 = 3;//11010 console.log(num1 ^ num2);//26 } //左移 //<<不會影響符號 function f1() { let oldvalue = 2; //二進位制為10 let newvalue = 2 << 5; //左移5位,1000000 為64 console.log(newvalue, -2 << 5); } //右移 //>>受符號影響,數值過小右移輸出值會為0 function f2() { let oldvalue = 64; //二進位制為1000000 let newvalue = oldvalue >> 5; //右移5位,10 為2 console.log(newvalue, -2 >> 5);//2,-1 受右移影響 }