JavaScript中位运算使用技巧

个人学习记录,欢迎指正
注意:JavaScript位运算针对整数,因此下面都是面向类型是数值,且是整数的变量讨论

1.舍弃小数

大部分语言中进行位运算时只会进行整数运算,JavaScript中也是如此,因此可借此舍弃小数。注:不是强制向下取整,是舍弃小数部分

  • 与: variable & varibale

  • 或: variable | 0variable | variable

  • 非: ~~variable

  • 异或: variable ^ 0

2.交换数值

利用位运算可以不借助第三个变量交换两个整数的值。证明将第一个式子带入第二个式子,再带入第三个式子即可。

let a = 1
let b = 2
a = a ^ b
b = a ^ b
a = a ^ b
3.幂运算

利用左右位移可以模拟乘或除2的幂

  • 乘2的x次幂: variable << x
  • 除2的x次幂: variable >> x
4.奇偶性

一个数与1进行&运算或与0进行|运算可以得出奇偶性

  • 奇数: variable & 1 === 1variable | 0 === 1
  • 偶数: variable & 1 === 0variable | 0 === 0
5.异或

任何数和自己异或为0,任何数和0异或为自己

和自己异或: variable ^ variable === 0

和1异或: variable ^ 0 === variable

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vanghua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值