Python bitwise operators

Updated: 2023-09-01
2 min read
[Python Programming]

« Left Shift

Moves the bits of its first operand to the left by the number of places specified in its second operand.

Formula: $a « n = a * 2^n$

  • Shifting a single bit to the left by one place doubles its value.
  • Shifting to two places to the left by one place quadruple its value.
>>> 100 << 1
200
>>> 100 << 2
400
>>> 100 << 3
800

» Right Shift

  • The rightmost bits always get dropped.
  • Every time you shift a bit to the right by one position, you halve its underlying value.

Formula: $a » n = [a/2^n]$

>>> 100 >> 1
50
>>> 100 >> 2
25
>>> 100 >> 3
12
>>> 5 >> 10
0
  • the right shift operator automatically floors the result.
>>> 5 >> 1  # Bitwise right shift
2
>>> 5 // 2  # Floor division (integer division)
2
>>> 5 / 2   # Floating-point division
2.5
>>> -2 >> 5
-1

& Operator

0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 0

For numbers:

27 & 23

  1. Covert to binary

    27 -> 11011 23 -> 10111

  2. turns to (in binary)

    11011 & 10111 = 10011 -> 19

    27 & 23 = 19

Resources