下面是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中使用的几个位逻辑运算符。
A. | B | 产出(A&B) |
---|---|---|
0 | 0 | 0 |
0 | 1. | 0 |
1. | 0 | 0 |
1. | 1. | 1. |
A. | B | 输出(A | B) |
---|---|---|
0 | 0 | 0 |
0 | 1. | 1. |
1. | 0 | 1. |
1. | 1. | 1. |
A. | B | 输出(A^B) |
---|---|---|
0 | 0 | 0 |
0 | 1. | 1. |
1. | 0 | 1. |
1. | 1. | 0 |
A. | 输出(~A) |
---|---|
0 | 1. |
1. | 0 |
下面是JavaScript中使用的几位移位运算符。
- 左移(< 它是一个二进制运算符,即它接受两个操作数。第一个运算符指定要移位的位数,第二个运算符指定要移位的位数。每个位向左移位,从右加0位。左侧多余的位被丢弃。
A. 6 ( 00000000000000000000000000000110 ) B 1 ( 00000000000000000000000000000001 ) 输出(A< 12 ( 00000000000000000000000000001100 ) - 符号传播右移(>>): 它是一个二进制运算符,即它接受两个操作数。第一个操作数指定数字,第二个操作数指定要移位的位数。每一位向右移位,溢出的位被丢弃。这是符号传播,因为从左边添加的位取决于数字的符号(即,如果为正,则为0,如果为负,则为1)
A. 6 ( 00000000000000000000000000000110 ) B 1 ( 00000000000000000000000000000001 ) 输出(A>>B) 3 ( 00000000000000000000000000000011 ) - 零填充右移(>>>): 它是一个二进制运算符,即它接受两个操作数。第一个操作数指定数字,第二个操作数指定要移位的位数。每个位向右移位,溢出的位被丢弃。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