JavaScript 位运算符
下面是 JavaScript 位运算符的示例。
例子:
输出:
A & B = 0
A | B = 5
~A = -5
与 C、C++、 Java、 Python和其他各种语言一样,JavaScript 也支持按位操作。在 JavaScript 中,数字存储为 64 位浮点数,但按位运算是在 32 位二进制数上执行的,即执行位运算 JavaScript 将数字转换为 32 位二进制数 (签名)并执行操作并将结果转换回 64 位数字。
下面是 JavaScript 中使用的一些按位逻辑运算符。
A | B | OUTPUT ( A & B ) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
A | B | OUTPUT ( A | B ) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
A | B | OUTPUT ( A ^ B ) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
A | OUTPUT ( ~A ) |
---|---|
0 | 1 |
1 | 0 |
下面是 JavaScript 中使用的一些按位移位运算符。
- 左移(<<):它是一个二元运算符,即它接受两个操作数。第一个运算符指定数字,第二个运算符指定要移位的位数。每个位都向左移动,并从右侧添加 0 位。左边多余的位被丢弃。
A 6 ( 00000000000000000000000000000110 ) B 1 ( 00000000000000000000000000000001 ) OUTPUT ( A << B ) 12 ( 00000000000000000000000000001100 ) - 符号传播右移(>>):它是一个二元运算符,即它接受两个操作数。第一个操作数指定数字,第二个操作数指定要移位的位数。每个位都向右移动,溢出的位被丢弃。这是符号传播,因为从左侧添加的位取决于数字的符号(即,如果为正,则为 0,如果为负,则为 1)
A 6 ( 00000000000000000000000000000110 ) B 1 ( 00000000000000000000000000000001 ) OUTPUT ( A >> B ) 3 ( 00000000000000000000000000000011 ) - 零填充右移(>>>):它是一个二元运算符,即它接受两个操作数。第一个操作数指定数字,第二个操作数指定要移位的位数。每个位向右移动,溢出的位被丢弃。从左侧添加 0 位,因此其零填充右移。
A 6 ( 00000000000000000000000000000110 ) B 1 ( 00000000000000000000000000000001 ) OUTPUT ( A >>> B ) 3 ( 00000000000000000000000000000011 ) 下面是上述运算符的实现。
输出:
A & B = 0 A | B = 7 ~A = -7 A >> B = 3 A >>> B = 3 A << B = 12
支持的浏览器:
- 谷歌浏览器
- IE浏览器
- 火狐
- 苹果浏览器
- 歌剧