JavaScript逐位运算符

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

null

<script>
var a = 4;
var b = 1;
document.write( "A & B = " + (a & b) + '<br>' );
document.write( "A | B = " + (a | b) + '<br>' );
document.write( "~A = " + (~a) + '<br>' );
</script>


输出:

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

像C、C++、java、Python和各种其他语言一样,JavaScript也支持逐位操作。在JavaScript中,一个数字被存储为64位浮点数,但按位操作是在32位二进制数上执行的,即要执行位操作,JavaScript将该数字转换为32位二进制数(有符号),然后执行该操作,并将结果转换回64位数。

下面是JavaScript中使用的几个位逻辑运算符。

  • 按位和(&): 它是一个二进制运算符,即接受两个操作数。如果两个位都被设置(即1),则按位AND(&)返回1,在任何其他情况下返回0。
    A. B 产出(A&B)
    0 0 0
    0 1. 0
    1. 0 0
    1. 1. 1.
  • 按位或(|): 它是一个二进制运算符,即接受两个操作数。如果设置了任何操作数(即1),则按位OR(|)返回1,在任何其他情况下返回0。
    A. B 输出(A | B)
    0 0 0
    0 1. 1.
    1. 0 1.
    1. 1. 1.
  • 按位异或(^): 它是一个二进制运算符,即接受两个操作数。如果两个操作数不同,则按位异或(^)返回1,在任何其他情况下返回0。
    A. B 输出(A^B)
    0 0 0
    0 1. 1.
    1. 0 1.
    1. 1. 0
  • 一点也不(~): 它是一元运算符,即接受单个操作数。按位不(~)翻转位,即0变为1,1变为0。
    A. 输出(~A)
    0 1.
    1. 0

    下面是JavaScript中使用的几位移位运算符。

    1. 左移(< 它是一个二进制运算符,即它接受两个操作数。第一个运算符指定要移位的位数,第二个运算符指定要移位的位数。每个位向左移位,从右加0位。左侧多余的位被丢弃。
      A. 6 ( 00000000000000000000000000000110 )

      B 1 ( 00000000000000000000000000000001 )

      输出(A< 12 ( 00000000000000000000000000001100 )

    2. 符号传播右移(>>): 它是一个二进制运算符,即它接受两个操作数。第一个操作数指定数字,第二个操作数指定要移位的位数。每一位向右移位,溢出的位被丢弃。这是符号传播,因为从左边添加的位取决于数字的符号(即,如果为正,则为0,如果为负,则为1)
      A. 6 ( 00000000000000000000000000000110 )

      B 1 ( 00000000000000000000000000000001 )

      输出(A>>B) 3 ( 00000000000000000000000000000011 )
    3. 零填充右移(>>>): 它是一个二进制运算符,即它接受两个操作数。第一个操作数指定数字,第二个操作数指定要移位的位数。每个位向右移位,溢出的位被丢弃。0位从左边加上,所以它的零填充右移。
      A. 6 ( 00000000000000000000000000000110 )

      B 1 ( 00000000000000000000000000000001 )

      输出(A>>>B) 3 ( 00000000000000000000000000000011 )

      下面是上述操作程序的实现。

      <script>
      var a = 6;
      var b = 1;
      // AND Operation
      document.write( "A & B = " + (a & b) + '<br>' );
      // OR operation
      document.write( "A | B = " + (a | b) + '<br>' );
      // NOT operation
      document.write( "~A = " + (~a) + '<br>' );
      // Sign Propagating Right Shift
      document.write( "A >> B = " + (a >> b) + '<br>' );
      // Zero Fill Right Shift
      document.write( "A >>> B = " + (a >>> b) + '<br>' );
      // Left Shift
      document.write( "A << B = " + (a << b) + '<br>' );
      </script>

      
      

      输出:

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

      支持的浏览器:

      • 谷歌浏览器
      • Internet Explorer
      • 火狐
      • 苹果浏览器
      • 歌剧
  • © 版权声明
    THE END
    喜欢就支持一下吧
    点赞6 分享