js 位运算符

在学习数据结构与算法及刷题过程中,遇到使用位运算符的操作,不仅书写简单且性能较好,故在此对常见的位运算及其使用场景进行简单总结。

基本概念

位运算就是直接进行二进制运算。
位运算属于低级的运算操作,因此相较于一般运算符速度最快。

& 按位与

若两个相应的二进制位都是1,则该位的结果为1,否则为0

| 按位或

若两个相应的二进制位有一个是1,则该位的结果为1,否则为0

^ 按位异或

若参加运算的两个二进制位值相同则为0,否则为1

~ 取反

用来对一个二进制数按位取反,将0变1,1变0

<< 左移

用来将一个数的各二进制位全部左移N位,右补0

>> 右移

用来将一个数的各二进制位全部右移N位,移到右端的低位被舍弃,对于无符号数,高位补0

实际运用
(1)通过 ^ 实现 0 1 切换
toggle ^= 1
// 等同于
toggle = toggle ? 0 : 1
(2)转换布尔值
console.log(!!7) // true
console.log(!!0) // false
(3)取整 ⭐️
console.log(~~8.3) // 8
console.log(8.3 >> 0) // 8
console.log(8.3 << 0) // 8
console.log(8.3 | 0) // 8
console.log(8.3 >>> 0) // 8
(4)判断符号

只能对比整数

(a ^ b) >= 0 // true 相同 false 不同
(5)检查数字是否不相等
if(a ^ 12) ...
// 等同于
if(a !== 12) ...
(6)四舍五入
a + 0.5 | 0
// 等同于
Math.round(a)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值