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  受右移影响 
        }
posted @ 2021-10-24 15:43  yongerbingxuan  阅读(67)  评论(0)    收藏  举报