Lessons
JavaScript Basics
Operators in JavaScript
Conditional Statements in JavaScript
JavaScript Strings
JavaScript Arrays
JavaScript Loop
JavaScript Functions
Conclusion
JavaScript Bitwise Operators
JavaScript bitwise operators allow you to perform operations on the binary representations of numbers. They work on 32-bit numbers at the binary level, manipulating bits directly. These operators are useful for low-level operations, such as optimizing performance or working with systems that require bit-level manipulation.
How Bitwise Operators Work
Before applying bitwise operations, JavaScript converts numbers into 32-bit binary. After performing the operation, the result is converted back to a standard JavaScript number.
1. & (AND)
The &
operator compares each bit of two numbers and returns 1
only if both bits are 1
.
Example:
javascript
1let result = 5 & 1; // Binary: 0101 & 0001
2console.log(result); // Output: 1
Explanation:
0101
(binary for5
)0001
(binary for1
)0101 & 0001 = 0001
(binary for1
)
2. | (OR)
The |
operator compares each bit of two numbers and returns 1
if at least one of the bits is 1
.
Example:
javascript
1let result = 5 | 1; // Binary: 0101 | 0001
2console.log(result); // Output: 5
Explanation:
0101
(binary for5
)0001
(binary for1
)0101 | 0001 = 0101
(binary for5
)
3. ~ (NOT)
The ~
operator inverts all the bits of the number (turns 0
s to 1
s and vice versa).
Example:
javascript
1let result = ~5; // Binary: ~0101
2console.log(result); // Output: -6
Explanation:
0101
(binary for5
)~0101 = 1010
(binary for-6
in two's complement representation)
4. ^ (XOR)
The ^
operator compares each bit of two numbers and returns 1
if the corresponding bits are different.
Example:
javascript
1let result = 5 ^ 1; // Binary: 0101 ^ 0001
2console.log(result); // Output: 4
Explanation:
0101
(binary for5
)0001
(binary for1
)0101 ^ 0001 = 0100
(binary for4
)
5. << (Left Shift)
The <<
operator shifts the bits of the number to the left by the specified number of positions, filling the vacated bits with 0
.
Example:
javascript
1let result = 5 << 1; // Binary: 0101 << 1
2console.log(result); // Output: 10
Explanation:
0101
(binary for5
)1010
(binary for10
after shifting left by 1)
6. >> (Right Shift)
The >>
operator shifts the bits of the number to the right by the specified number of positions, filling the leftmost bits with the sign bit (0 for positive numbers, 1 for negative).
Example:
javascript
1let result = 5 >> 1; // Binary: 0101 >> 1
2console.log(result); // Output: 2
Explanation:
0101
(binary for5
)0010
(binary for2
after shifting right by 1)
7. >>> (Unsigned Right Shift)
The >>>
operator shifts the bits to the right, just like >>
, but fills the leftmost bits with 0
regardless of the sign.
Example:
javascript
1let result = 5 >>> 1; // Binary: 0101 >>> 1
2console.log(result); // Output: 2
Explanation:
0101
(binary for5
)0010
(binary for2
after unsigned right shift by 1)
Use Cases of Bitwise Operators
- Low-Level Programming: Useful in tasks like bit masking, setting specific bits, or clearing bits.
- Performance Optimization: Sometimes bitwise operations can offer faster alternatives to certain arithmetic operations.
- Graphics and Game Development: Often used in manipulating pixel data and optimizing graphical calculations.