一文读懂JavaScript 中的位运算

本文详细介绍了JavaScript中的位运算符,包括按位与(&amp;),按位或(|),按位异或(^),按位取反(~),左移(<<)和右移(>>)。通过实例展示了这些运算符在掩码操作、数据清除、权限设置、数据加密、取反和性能优化等方面的应用。并给出了将正整数转换为二进制bool数组的思考题。

JavaScript 中的位运算符是强大且多用途的工具,它们基于数字的二进制表示执行操作。这些运算符包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)和右移(>>)。让我们深入了解这些运算符以及它们的应用场景。

1. 按位与(&)

按位与运算符 & 对两个数的对应位执行与操作,结果为 1 当且仅当两个数的对应位都为 1。应用示例:

let result = 5 & 3; // 0101 & 0011 = 0001 (十进制结果为 1)

应用场景:掩码操作、数据清除。

2. 按位或(|)

按位或运算符 | 对两个数的对应位执行或操作,结果为 1 当且仅当两个数的对应位中至少有一个为 1。应用示例:

let result = 5 | 3; // 0101 | 0011 = 0111 (十进制结果为 7)

应用场景:权限设置、标志位操作。

3. 按位异或(^)

按位异或运算符 ^ 对两个数的对应位执行异或操作,结果为 1 当且仅当两个数的对应位不相同。应用示例:

let result = 5 ^ 3; // 0101 ^ 0011 = 0110 (十进制结果为 6)

应用场景:数据加密、数据校验。

4. 按位取反(~)

按位取反运算符 ~ 对一个数的每个位进行取反操作(0 变 1,1 变 0)。应用示例:

let result = ~5; // ~0101 = 1010 (十进制结果为 -6)

应用场景:取反操作、位级运算的特殊场景。

5. 左移(<<)

左移运算符 << 将一个数的二进制位向左移动指定的位数。应用示例:

let result = 5 << 1; // 0101 左移1位变为 1010 (十进制结果为 10)

应用场景:乘以2的幂次方、性能优化。

6. 右移(>>)

右移运算符 >> 将一个数的二进制位向右移动指定的位数。应用示例:

let result = 5 >> 1; // 0101 右移1位变为 0010 (十进制结果为 2)
实践

最后给一个思考题吧,给出一个正整数a(小于65535),如何将其转换成一个长度为16的bool数组,数组中的值分别对应a的二进制对应位置的值,0对应false,1对应true,例如:

var a = 51;
// 51 对应二进制 0000 0000 0011 0011,转换后的数组为
var b = [true,true,false,false,true,true,false,false,false,false,false,false,false,false,false,false]

提示:可以考虑使用按位与(&)😛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我糖呢

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

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

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

打赏作者

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

抵扣说明:

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

余额充值