JavaScript 按位运算符

JavaScript 按位运算符执行位操作。所有的十进制值都被转换为二进制值(位序列,即 0100、1100、1000、1001 等)。接下来,按位运算符将对这些位进行操作,例如将它们从左到右移动,或者将位值从 0 转换为 1 等。

下表显示了不同的 JavaScript 按位运算符及其含义。例如,考虑 x = 6 和 y = 8,它们的二进制形式分别为:x = 0110 和 y = 1000

位运算符含义示例
&按位与X & Y = 0000
|按位或X | Y = 1110
^异或X ^ Y = 1110
~补码~X = 00001001 (非运算符会将所有 0 转换为 1。)
<<左移X << 1 = 00001100(位将向左移动 1 步。如果使用 2 或 3,它们将相应地移动)
>>右移Y >> 1 = 00000100

让我们看看 JavaScript 按位运算符背后的真值表。

xyx & yX | yx ^ y
00000
01011
10011
11110

JavaScript 按位运算符示例

让我们看一个示例以更好地理解。对于此按位运算符示例,我们使用两个变量 a 和 b;它们的值分别为 9 和 65。我们将使用这两个变量来向您展示各种按位操作

<!DOCTYPE html>

<html>
<head>
    <title> JavaScriptBitwiseOperators </title>
</head>

<body>
    <h1> JavaScriptBitwiseOperators </h1>
<script>
    var a = 9, b = 65;
    
    document.write("Bitwise AND Operator a & b =  " + (a&b));
    document.write("<br \> Bitwise OR Operator a | b =  " + (a|b));
    document.write("<br \> Bitwise EXCLUSIVE OR Operator a^b =  " + (a^b));
    document.write("<br \> Bitwise NOT Operator ~a =  " + (~a));
    
    document.write("<br \> LEFT SHIFT Operator a << 1 =  " + (a << 1));
    document.write("<br \> RIGHT SHIFT Operator b >> 1 =  " + (b >> 1));
 </script>
</body>
</html>
JavaScript Bitwise Operators

在此 JavaScript 按位运算符程序中,我们声明了两个整数 a 和 b,并分别赋值 9 和 65。9 的二进制形式为 0001001,65 的二进制形式为 1000001。

文档写入语句将对 a 和 b 执行按位操作,然后它们将显示输出。让我们看看 JavaScript 计算

AND 操作 = a&b

0001001 & 1000001 = 0000001 = 1

或运算 = a || b

0001001 || 1000001 = 1001001 = 73

异或操作 = a^b

0001001 ^ 1000001 = 1001000 = 72

JavaScript 按位左移运算符操作:左移一位等于将数字乘以 2。这意味着,

a << 1 = (9 * 2) = 18

如果我们说 a<<2,那么将数字乘以 4,依此类推

OR

a << 1 = 0001001 << 1 = 0010010 = 18
右移操作 = b>> 1

1000001 >> 1 = 0100000 = 32