1. 程式人生 > 其它 >JavaScript位運算

JavaScript位運算

      //按位非(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  受右移影響 
        }