JAVASCRIPT中的位运算

JAVASCRIPT中的位运算

位运算符

运算符名称操作示例
&位与对整形数逐位执行与(AND)操作0x1234 & 0x00ff === 0x34
|位或对整形数逐位执行与(OR)操作0x1234 & 0x00ff === 0x12FF
~位非将操作数的所有为取反~0xf === 0xffffffff0
^位异或对整形数逐位执行与(XOR)操作,相异为10xff00 ^ 0xf0f0 === 0x0ff0
<<左移将一个操作数的所有二进制位进行左移操作,移动的位数由第二个操作数决定7 << 2 === 28
>>带符号右移将一个操作数的所有二进制位进行左移操作,移动的位数由第二个操作数决定, 符号位不改变-7 >> 1 === 4
>>>无符号右移将一个操作数的所有二进制位进行左移操作,移动的位数由第二个操作数决定, 符号位补0-1 >>> 4 === 0x0FF

组合位运算

符号名称示例
~(a & b)位与非~(0x7 & 0x6) === -2
~(a | b)位或非~(0x7 | 0x6) === -8
~(a ^ b)同或相同为1: ~(0x7 ^ 0x6) === -2

巧用位运算

  • 使用按位非~判断索引存在: 这是一个很常用的技巧,如判断一个数是否在数组里面
~-1 === 0
if (~arr.indexOf(a)) {
}
  • 使用异或交换两个数
  • 使用按位与&去掉高位
  • 使用按位与&进行标志位判断
  • 使用按位|构造属性集
    参考

位运算的使用练习

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值