高级运算符

一、按位与 &

0为false,1为true,同假为假,同真为真,一真一假即为假

console.log(3 & 5);//1
/*
    3:    0011
    5:    0101
------------------
          0001
*/

二、按位或 |

0为false,1为true,同假为假,同真为真,一真一假则为真

console.log(3 | 5);//7
/*
    3:    0011
    5:    0101
----------------
          0111
*/

三、按位异或 ^

相同为0,不同为1(相同为假,不同为真)

特点:一个数连续异或同一个数两次,结果等于他本身

应用:基础的加密算法

console.log(3 ^ 5);//6
console.log(3 ^ 5 ^ 5);//3
/*
    3:    0011
    5:    0101
----------------
          0110-----6
    5:    0101
----------------
          0011-----3
*/

四、按位取反 ~

0为1,1为0(假为真,真为假)

计算公式:

~n = -(n+1)

console.log(~7);//-8
/*
    7:    00000000 00000000 00000000 00000111
    ~     11111111 11111111 11111111 11111000    
    第一位为符号位:1为负数 0为正数    
*/

五、位移运算符

运算符:

>>        右运算

<<        左运算

>>>       无符号右移

计算公式:n<<m = n*(2的m次方)        n>>m = n/(2的m次方)

注意:

1.本质上移动的是二进制,所以它相当于操作计算机底层的二级制,所以性能极高!

2.不存在无符号左移,因为高位可能是符号位

console.log(3 << 3);//24
/*
    3:    00000011
    <<    00011000------24
*/
//面试题:请您以性能最高的方式计算2的3次方
console.log(2 << 2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值