JavaScript 提供了一组位运算符,这些运算符用于直接操作二进制表示的数值的每个比特位。这些运算符通常用于执行一些特殊的位级操作,例如掩码、位移等。以下是一些常见的 JavaScript 位运算符:

按位与(AND)&

按位与运算符 & 对两个数的每一位执行 AND 操作。只有两个相应的比特位都为 1 时,结果的相应比特位才为 1。
var result = 5 & 3; // 0101 & 0011 = 0001,返回 1

按位或(OR)|

按位或运算符 | 对两个数的每一位执行 OR 操作。只要两个相应的比特位中至少有一个为 1,结果的相应比特位就为 1。
var result = 5 | 3; // 0101 | 0011 = 0111,返回 7

按位异或(XOR)^

按位异或运算符 ^ 对两个数的每一位执行 XOR 操作。只有两个相应的比特位不同,结果的相应比特位才为 1。
var result = 5 ^ 3; // 0101 ^ 0011 = 0110,返回 6

按位非(NOT)~

按位非运算符 ~ 对一个数的每一位执行 NOT 操作。它将 0 变为 1,将 1 变为 0。
var result = ~5; // ~0101 = 1010,返回 -6(以补码表示)

左移位 <<

左移位运算符 << 将一个数的所有比特位向左移动指定的位数。在左移过程中,右侧用零填充。
var result = 5 << 1; // 0101 左移 1 位变成 1010,返回 10

右移位 >>

右移位运算符 >> 将一个数的所有比特位向右移动指定的位数。在右移过程中,左侧用符号位填充。
var result = 5 >> 1; // 0101 右移 1 位变成 0010,返回 2

无符号右移 >>>

无符号右移运算符 >>> 将一个数的所有比特位向右移动指定的位数。在右移过程中,左侧用零填充。
var result = -5 >>> 1; // -5 的二进制表示为 1111111111111111111111111111111111111111111111111111111111111011
                      // 右移 1 位变成 0111111111111111111111111111111111111111111111111111111111111101,返回 2147483645

这些位运算符通常用于对数据进行一些底层操作,例如创建掩码、进行位级计算等。在一般的 JavaScript 编程中,使用场景相对较少,主要用于需要对二进制数据进行直接处理的情况。


转载请注明出处:http://www.pingtaimeng.com/article/detail/3524/JavaScript