# JavaScript: Bitwise Operators

## Bitwise Operators

Bitwise operators perform an operation on the bitwise (0,1) representation of their arguments, rather than as decimal, hexadecimal, or octal numbers. For example, the decimal number eight has a binary representation of 1000. Bitwise operators do their operations on such binary representation (for example 1000) but they return standard JavaScript numerical values.

Here is a list of JavaScript's bitwise operators.

Operator Usage Description
Bitwise AND a & b Returns a one in each bit position if bits of both left and right operands are ones.
Bitwise OR a | b Returns a one in each bit if bits of either left or right operand is one.
Bitwise XOR a ^ b Returns a one in a bit position if bits of one but not both left and right operand are one.
Bitwise NOT ~ a Flips the bits of its operand.
Left shift a << b Shifts a in binary representation b bits to the left, shifting in zeros from the right.
Sign-propagating right shift a >> b Shifts a in binary representation b bits to the right, discarding bits shifted off.
Zero-fill right shift a >>> b Shifts a in binary representation b bits to the right, discarding bits shifted off, and shifting in zeros from the left.

## Want to Practice JavaScript exercises ?

Test your Programming skills with w3resource's quiz.

﻿

## JavaScript: Tips of the Day

2d array into an object

```const keys = ["name", "age"]
const values = ["Owen", 25]

const method = /* ?? */
Object[method](keys.map((_, i) => {
return [keys[i], values[i]]
})) // { name: "Owen", age: 25 }
```