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

1万+

被折叠的 条评论
为什么被折叠?



