这些JavaScript按位运算符做什么? x>y) x>>>>=y(x=x>>>y) x&=y(x=x&y) x^=y(x=x^y) x |=y(x=x | y)

这些JavaScript按位运算符做什么? x>y) x>>>>=y(x=x>>>y) x&=y(x=x&y) x^=y(x=x^y) x |=y(x=x | y),javascript,operators,bit-manipulation,Javascript,Operators,Bit Manipulation,这些不同的操作员做什么? 它们分别是按位and、xor和or。您可以将&和|视为&&和|的对应项,不同之处在于它们将操作数视为位向量,并对每个位执行逻辑运算。没有^^运算符,但此操作是“xor”或“”。您可以将“a或b”视为“a或b,但不能两者兼而有之”。这里是一个尝试,旨在使初学者的工作变得简单 先决条件 你必须熟悉二进制数字系统(由两位数字组成的数字)。如果没有,请先检查此链接:。为了防止前面的链接中断,这个答案可能会有所帮助: 实际上,为了弄清楚这些运算符是如何工作的,您需要知道操作中涉及

这些不同的操作员做什么?


它们分别是按位and、xor和or。您可以将
&
|
视为
&&
|
的对应项,不同之处在于它们将操作数视为位向量,并对每个位执行逻辑运算。没有
^^
运算符,但此操作是“xor”或“”。您可以将“a或b”视为“a或b,但不能两者兼而有之”。

这里是一个尝试,旨在使初学者的工作变得简单

先决条件

你必须熟悉二进制数字系统(由两位数字组成的数字)。如果没有,请先检查此链接:。为了防止前面的链接中断,这个答案可能会有所帮助:

实际上,为了弄清楚这些运算符是如何工作的,您需要知道操作中涉及的数字后面是哪个位序列。之后,你应该能够理解以下内容

提醒

十进制数字及其二进制符号:

0 0 | 5 101
1    1 | 6  110
2   10 | 7  111
3   11 | 8 1000
4  100 | 9 1001
你做什么?
>>
>
>2 |>>2为了完整起见,除了移位运算符之外,这些东西还可以用于布尔运算(它们可能是位的,也可能不是位的——它们在Visual Basic中,但在Java、AFAIK中(根据规范)不是)
&
|
&
|
的不同之处在于,始终对两个操作数求值,而在
&&
/
|
版本中,如果第二个操作数在第一个操作数求值后无法更改表达式的值,则不会对其求值。另外请查看
<<, >>
&, ^, |