Bitwise operators

In addition to mathematical, logical and comparison operators, there are bitwise operators. These operators execute conditions based on the actual bits of a value rather than the values that the bits are encoded to represent.

Bitwise operators are typically represented with single characters of existing operators, e.g. & instead of &&:

Bitwise operationOperator
AND&
OR(single pipe)
NOT~

An example of using the & operator:

x = 5
y = 3
a = x & y
b = x | y

The value of a will be 1. The reason is we are looking at the bit values of x and y and then applying Boolean AND to each bit:

x = 5 = 0101
y = 3 = 0011
a = 1 = 0001

Working from right to left for each column:

  • true and true = true
  • false and true = false
  • true and false = false
  • false and false = false

This leaves us with 0001 which is equal to 1 in binary and denary.

For the case of bitwise OR we get 7 as the result of x | y:

x = 5 = 0101
y = 3 = 0011
b = 7 = 0111
  • true or true = true
  • false or true = true
  • true or false = true
  • false or false = true

This leaves us with 0111 which is equal to 7 in denary.

Why use them?

Bitwise operations are more of a hallmark of lower-level programming. As bit operations are the fastest and lowest level of computation, being able to directly access and operate on bits within a programming language can be beneficial when efficiency and speed of execution is a factor or when memory is constrained.