📜  JavaScript 位运算符

📅  最后修改于: 2022-05-13 01:56:24.277000             🧑  作者: Mango

JavaScript 位运算符

下面是 JavaScript 位运算符的示例。
例子:


输出:

A & B = 0
A | B = 5
~A = -5

与 C、C++、 Java、 Python和其他各种语言一样,JavaScript 也支持按位操作。在 JavaScript 中,数字存储为 64 位浮点数,但按位运算是在 32 位二进制数上执行的,即执行位运算 JavaScript 将数字转换为 32 位二进制数 (签名)并执行操作并将结果转换回 64 位数字。

下面是 JavaScript 中使用的一些按位逻辑运算符。

  • 按位与 ( & ) :它是一个二元运算符,即接受两个操作数。如果两个位都已设置(即 1),则按位与 (&) 返回 1,在任何其他情况下返回 0。
    ABOUTPUT ( A & B )
    000
    010
    100
    111
  • 位或(|):它是一个二元运算符,即接受两个操作数。如果设置了任何操作数(即 1),则按位或 (|) 返回 1,在任何其他情况下返回 0。
    ABOUTPUT ( A | B )
    000
    011
    101
    111
  • 按位异或(^):它是一个二元运算符,即接受两个操作数。如果两个操作数不同,则按位 XOR ( ^ ) 返回 1,在任何其他情况下返回 0。
    ABOUTPUT ( A ^ B )
    000
    011
    101
    110
  • Bit-Wise NOT (~):它是一个一元运算运算符,即接受单个操作数。按位 NOT (~) 翻转位,即 0 变为 1,1 变为 0。
    AOUTPUT ( ~A )
    01
    10

    下面是 JavaScript 中使用的一些按位移位运算符。

    1. 左移(<<):它是一个二元运算符,即它接受两个操作数。第一个运算符指定数字,第二个运算符指定要移位的位数。每个位都向左移动,并从右侧添加 0 位。左边多余的位被丢弃。
      A6 ( 00000000000000000000000000000110 )
      B1 ( 00000000000000000000000000000001 )
      OUTPUT ( A << B )12 ( 00000000000000000000000000001100 )
    2. 符号传播右移(>>):它是一个二元运算符,即它接受两个操作数。第一个操作数指定数字,第二个操作数指定要移位的位数。每个位都向右移动,溢出的位被丢弃。这是符号传播,因为从左侧添加的位取决于数字的符号(即,如果为正,则为 0,如果为负,则为 1)
      A6 ( 00000000000000000000000000000110 )
      B1 ( 00000000000000000000000000000001 )
      OUTPUT ( A >> B )3 ( 00000000000000000000000000000011 )
    3. 零填充右移(>>>):它是一个二元运算符,即它接受两个操作数。第一个操作数指定数字,第二个操作数指定要移位的位数。每个位向右移动,溢出的位被丢弃。从左侧添加 0 位,因此其零填充右移。
      A6 ( 00000000000000000000000000000110 )
      B1 ( 00000000000000000000000000000001 )
      OUTPUT ( A >>> B )3 ( 00000000000000000000000000000011 )

      下面是上述运算符的实现。

                                  
      

      输出:

      A & B = 0
      A | B = 7
      ~A = -7
      A >> B = 3
      A >>> B = 3
      A << B = 12

      支持的浏览器:

      • 谷歌浏览器
      • IE浏览器
      • 火狐
      • 苹果浏览器
      • 歌剧