JS:位运算符

在JS中有 ~  | & ^ << >> 等位运算符。

在对一个数值使用位运算符时,JS会先将数值转换为二进制,然后进行位运算。

在JS中对一个数值转进行二进制转换,会得到一个长度为32位的二进制数,通常第一个为1的位之前所有为0的为在表示时可以省略。

常见位运算符使用方法有下列几种:

~:非,~ a 即 将a的二进制码的每一位(32位)中的0和1互换得到新值。事实上,非位运算相当于对数值进行取负运算,再减 1。即 ~a=-(a+1)。如~1为-2,~-1为 0。

&:与 ,a & b 即 将a和b中ab都为1的位组成新值,如 1111 & 111100 值为 1100

 | :或 ,a | b 即 将a和b中ab有为1的位组成新值,如 1010 | 100010 值为 101010

^ :异,a ^ b 即 将a和b中ab不同的位组成新值(即一个为0另一个为1,则为1,两个都为0或都为1,则为0),如 1010 ^ 111000 值为 110010

<<:左移,a << 2 即 将 a 前2位丢弃,后2位补0

>>:右移,a >> 4 即 将a 后4位丢弃,前4位补0

使用示例:

console.log(~-2);//1
console.log(~-1);//0
console.log(~0);//-1
console.log(~1);//-2
console.log(~2);//-3

//由于indexOf方法返回-1表示不包含指定元素,否则为包含,
//所以可以利用~可以把-1转换为0,否则为非0整数
var arr = ['a', 'b']
if(~arr.indexOf('a')){
    console.log(true);
}
// true

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值