在计算机科学中,按位运算符是一组用于对二进制数进行操作的运算符。它们将二进制数的每个位视为单独的数字,并执行逐位操作以生成结果。在前端开发中,按位运算符常用于优化算法和处理数据。
按位运算符的类型
JavaScript 中有六个按位运算符,分别为:
- 按位与 (
&
) - 按位或 (
|
) - 按位异或 (
^
) - 左移 (
<<
) - 有符号右移 (
>>
) - 无符号右移 (
>>>
)
按位与 (&)
按位与运算符将两个二进制数的相应位进行比较,如果两个位都为 1,则返回 1;否则,返回 0。例如,表达式 9 & 10
的结果为 8
,因为 9
和 10
的二进制表示分别为 1001
和 1010
,所以它们的按位与结果为 1000
。
console.log(9 & 10); // 输出 8
按位或 (|)
按位或运算符将两个二进制数的相应位进行比较,如果其中一个位为 1,则返回 1;否则,返回 0。例如,表达式 9 | 10
的结果为 11
,因为 9
和 10
的二进制表示分别为 1001
和 1010
,所以它们的按位或结果为 1011
。
console.log(9 | 10); // 输出 11
按位异或 (^)
按位异或运算符将两个二进制数的相应位进行比较,如果两个位不同,则返回 1;否则,返回 0。例如,表达式 9 ^ 10
的结果为 3
,因为 9
和 10
的二进制表示分别为 1001
和 1010
,所以它们的按位异或结果为 0011
。
console.log(9 ^ 10); // 输出 3
左移 (<<)
左移运算符将一个二进制数向左移动指定数量的位。例如,表达式 9 << 2
的结果为 36
,因为 9
的二进制表示为 1001
,将其向左移动两位后得到 100100
,即十进制数 36
。
console.log(9 << 2); // 输出 36
有符号右移 (>>)
有符号右移运算符将一个二进制数向右移动指定数量的位,同时保持其符号位不变。例如,表达式 -9 >> 2
的结果为 -3
,因为 -9
的二进制表示为 11111111111111111111111111110111
,将其向右移动两位后得到 11111111111111111111111111111101
,即十进制数 -3
。
console.log(-9 >> 2); // 输出 -3
无符号右移 (>>>)
无符号右移运算符将一个二进制数向右移动指定数量的位,同时将其符号位视为普通位处理。例如,表达式 -9 >>> 2
的结果为 1073741821
,因为 -9
的二进制表示为 11111111111111111111111111110111
,将其向右移动两位后得到 00111111111111111111111111111101
,即十进制数 1073741821
。
console.log(-9 >>> 2); // 输出 1073741821
按位运算符的应用
按位运算符在前端开发中有许多应用场景,包括:
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/10531