位运算的实践运用

  1. 判断一个数的奇偶(|)
var n = 2
n | 1 // 0
var n = 1
n | 1 // 1
  1. 向下取整(~~,>>,<<,>>>,|)
~~1.2 // 1
~~1.8 // 1
1.8 >> 0 // 1
1.14 << 0 // 1
1.14 | 0 // 1
1.14 >>> 0 // 1 (>>>不可对负数取整)
  1. 2的倍数乘除法(<<,>>)
1 << 2 // 4 // 1的2进制左移2位,即乘2的2次方
8 >> 2 // 2 // 8的2进制右移2位,即除2的2次方
  1. 比较两个数是否相等(^)
1 ^ 1 // 0
!(2 ^ 2) // true
var n = 8
!(n ^ 8) // true
  1. 取相反数
var n = 1
n = ~n + 1
  1. 复杂开关操作
// 适用于表单验证等
var result = 0
var rule = {
  name: 1,
  name2: 1 << 1,
  name3: 1 << 2,
  name4: 1 << 3
}
result |= name3 // 设置name3为成功
result &= ~name3 // 设置name3为失败
result ^= name3 // 取反,即是成功时改为失败,反之亦然
result & rule.name3 // 判断name3是否成功
result & (rule.name3 | rule.name4) // 判断name3和name4是否同时成功
  1. 0和1的切换
var n = 1
n ^= 1 // 0
n ^= 1 // 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值