Unlocking the Power of JavaScript Bitwise Operators

Binary Building Blocks

In JavaScript, bitwise operators treat their operands as 32-bit binary numbers, composed of zeros and ones. Although the result is displayed as a decimal value, understanding the binary representation is crucial to mastering these operators. A 32-bit signed number can represent integers ranging from -2147483648 to 2147483647.

Bitwise AND: The Conjunction Operator

The bitwise AND operator (&) returns 1 if both corresponding bits are 1, and 0 otherwise. Let’s examine the bitwise AND operation between 12 and 25. Converting these numbers to 32-bit binary, we get:

  • 12: 00000000000000000000000000001100
  • 25: 00000000000000000000000000011001

Performing the bitwise AND operation yields:

  • 00000000000000000000000000001000 ( decimal value: 8)

Bitwise OR: The Inclusive Operator

The bitwise OR operator (|) returns 1 if either of the corresponding bits is 1, and 0 otherwise. Using the same numbers, let’s explore the bitwise OR operation:

  • 12: 00000000000000000000000000001100
  • 25: 00000000000000000000000000011001

The result of the bitwise OR operation is:

  • 00000000000000000000000000011101 (decimal value: 29)

Bitwise XOR: The Exclusive Operator

The bitwise XOR operator (^) returns 1 if the corresponding bits are different, and 0 if they are the same. Let’s apply this operator to 12 and 25:

  • 12: 00000000000000000000000000001100
  • 25: 00000000000000000000000000011001

The result of the bitwise XOR operation is:

  • 00000000000000000000000000010101 (decimal value: 21)

Bitwise NOT: The Inverter

The bitwise NOT operator (~) inverts the bits, changing 0 to 1 and 1 to 0. When applied to 12, the result is:

  • 11111111111111111111111111110011 (decimal value: -13)

Shift Operators: Changing the Perspective

JavaScript offers three shift operators: left shift (<<), sign-propagating right shift (>>), and zero-fill right shift (>>>). These operators modify the binary representation of a number by shifting its bits.

  • Left shift: shifts bits to the left, adding zeros to the right and discarding excess bits from the left.
  • Sign-propagating right shift: shifts bits to the right, discarding excess bits from the right and filling the left with copies of the leftmost bit.
  • Zero-fill right shift: shifts bits to the right, discarding excess bits from the right and filling the left with zeros.

Mastering JavaScript bitwise operators can unlock new possibilities in your coding journey. By understanding these fundamental building blocks, you’ll be better equipped to tackle complex programming challenges.

Leave a Reply

Your email address will not be published. Required fields are marked *