JavaScript按位运算符用法指南

2021年3月22日15:29:08 发表评论 682 次浏览

以下是JavaScript按位运算符的示例。

例子:

<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中使用的一些按位逻辑运算符。

按位AND(&):

它是一个二进制运算符, 即接受两个操作数。如果两个位都设置为1(即1), 则按位与(&)返回1, 其他情况下则为0。

一种 输出(A&B)
0 0 0
0 1 0
1 0 0
1 1 1

位明智或(|):

它是一个二进制运算符, 即接受两个操作数。如果设置了任何操作数(即1), 则按位OR(|)返回1;在其他情况下, 则返回0。

一种 输出(A | B)
0 0 0
0 1 1
1 0 1
1 1 1

比特异或(^):

它是一个二进制运算符, 即接受两个操作数。如果两个操作数都不相同, 则按位XOR(^)将返回1, 而在其他情况下则返回0。

一种 输出(A ^ B)
0 0 0
0 1 1
1 0 1
1 1 0

位明智NOT(〜):

它是一元运算符, 即接受单个操作数。按位NOT(〜)翻转位, 即0变为1并且1变为0。

一种 输出(〜A)
0 1
1 0

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

左移(<<):

它是一个二进制运算符, 即它接受两个操作数。第一个运算符指定数字, 第二个运算符指定要移位的位数。每个位向左移动, 从右侧添加0位。左侧的多余位将被丢弃。

一种 6(00000000000000000000000000000110)
1(00000000000000000000000000000001)
输出(A << B) 12(00000000000000000000000000001100)

传播右移符号(>>):

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

一种 6(00000000000000000000000000000110)
1(00000000000000000000000000000001)
输出(A >> B) 3(00000000000000000000000000000011)

零填充右移(>>>):

它是一个二进制运算符, 即它接受两个操作数。第一个操作数指定数字, 第二个操作数指定要移位的位数。每个位向右移动, 溢出位被丢弃。从左侧添加0位, 因此其零填充向右移位。

一种 6(00000000000000000000000000000110)
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

支持的浏览器:

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

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: