What do these JavaScript bitwise operators do?

bit-manipulation, javascript, operators

Solution

<<, >>

Bit shift left and right, respectively. If you imagine the left operand as a binary sequence of bits, you are shifting those to the left or right by the number of bits indicated by the right operand.

&, ^, |

These are bitwise and, xor, and or, respectively. You can think of `&` and `|` as the counterparts to `&&` and `||`, except that they will treat their operands as bit vectors, and perform the logical operations on each of the bits. There is no `^^` operator, but this operation is "xor" or "exclusive or". You can think of "a xor b" as "a or b, but not both".

Problem

- `x <<= y (x = x << y)` - `x >>= y (x = x >> y)` - `x >>>= y (x = x >>> y)` - `x &= y (x = x & y)` - `x ^= y (x = x ^ y)` - `x |= y (x = x | y)` What do these different operators do?

Original source

Related problems