返回
JavaScript位运算符:解锁数字底层的秘密
前端
2023-11-02 20:57:52
在JavaScript世界中,位运算符提供了一种探索数字内部运作的强大工具,在数字的32位底层进行操作,带来惊人的运算速度。
位运算符直接在二进制数字位上执行操作,通过按位比较、移动和组合数字位来实现。这些操作为各种编程场景提供了强大的工具,从优化数据结构到提高计算效率。
以下是JavaScript中最常用的位运算符:
&
按位与|
按位或^
按位异或~
按位取反<<
左移>>
右移
让我们通过一些示例来深入了解这些运算符的实际应用:
按位与(&):
const num1 = 10; // 二进制:1010
const num2 = 6; // 二进制:0110
const result = num1 & num2; // 二进制:0010 = 2
按位与运算符比较两个数字的位,如果两个位都为1,则结果位为1,否则为0。在上面的示例中,num1
和num2
都只有两个位,按位与操作后,只有第一个位匹配,因此结果为2。
按位或(|):
const num1 = 10; // 二进制:1010
const num2 = 6; // 二进制:0110
const result = num1 | num2; // 二进制:1110 = 14
按位或运算符比较两个数字的位,如果至少一个位为1,则结果位为1,否则为0。在上面的示例中,num1
和num2
的位逐位进行或运算,结果为14。
按位异或(^):
const num1 = 10; // 二进制:1010
const num2 = 6; // 二进制:0110
const result = num1 ^ num2; // 二进制:1100 = 12
按位异或运算符比较两个数字的位,如果两个位不同,则结果位为1,否则为0。在上面的示例中,num1
和num2
的按位异或结果为12。
按位取反(~):
const num = 10; // 二进制:1010
const result = ~num; // 二进制:0101 = -11
按位取反运算符将数字的所有位取反,也就是将0变为1,1变为0。在上面的示例中,num
按位取反后,结果为-11,因为它在内部表示为补码。
左移(<<):
const num = 10; // 二进制:1010
const result = num << 2; // 二进制:101000 = 40
左移运算符将数字的位向左移动指定的位数,并将多出的位用0填充。在上面的示例中,num
左移2位,结果为40。
右移(>>):
const num = 10; // 二进制:1010
const result = num >> 2; // 二进制:0010 = 2
右移运算符将数字的位向右移动指定的位数,并将多出的位用符号位(最左边的位)填充。在上面的示例中,num
右移2位,结果为2。
通过理解和应用位运算符,您可以在JavaScript应用程序中提高效率、优化代码并探索数字内部的奇妙世界。