Python Bitwise Operators 🎯

beginner
19 min

Python Bitwise Operators 🎯

Welcome to the deep dive into Python Bitwise Operators! In this lesson, we'll explore the world of bit manipulation, a powerful tool that allows us to perform low-level operations on individual bits of binary data. Let's get started!

Understanding Binary Numbers 📝

Before we delve into bitwise operators, it's crucial to understand how numbers are represented in binary format. Each number has a binary equivalent, where each digit represents a power of 2. For instance, the binary representation of 10 (decimal) is 1010 (binary), where 1010 = 8 + 2 + 0 + 0 (decimal).

Basic Bitwise Operators 💡

Python provides several bitwise operators that allow us to manipulate individual bits of a number. Here are the essential operators:

  • Bitwise AND (&): The bitwise AND operator produces a result where both corresponding bits are 1.
  • Bitwise OR (|): The bitwise OR operator produces a result where either or both corresponding bits are 1.
  • Bitwise XOR (^): The bitwise XOR operator produces a result where only one of the corresponding bits is 1.
  • Bitwise NOT (~): The bitwise NOT operator inverts all the bits in a number (flips 0 to 1 and 1 to 0).
  • Bitwise Left Shift (<<): The bitwise left shift operator shifts the bits of a number to the left by a specified number of positions.
  • Bitwise Right Shift (>>): The bitwise right shift operator shifts the bits of a number to the right by a specified number of positions.

Practical Examples 💡

Let's see some practical examples of bitwise operators in action.

Example 1: Bitwise AND

python
a = 6 # binary: 0110 b = 3 # binary: 0011 a & b # Output: 0 (binary: 0000)

In the above example, both a and b have binary representations where only the 2nd and 3rd bits are set to 1. Since both bits need to be 1 for the AND operator to produce a 1, the result is 0.

Example 2: Bitwise OR

python
a = 6 # binary: 0110 b = 3 # binary: 0011 a | b # Output: 7 (binary: 0111)

In this example, either or both bits need to be 1 for the OR operator to produce a 1. As a result, the 2nd and 3rd bits (corresponding to the values 2 and 1) are set to 1.

Advanced Bitwise Operations 💡

Now that you've got the basics down, let's explore some advanced bitwise techniques.

Example 3: Using Bitwise Operations for Efficient Range Checking ✅

python
def is_within_range(number, start, end): # Convert start and end to binary and invert end's bits end_binary = format(end, 'b')[::-1] inverted_end = '1' + '0' * (8 * len(end_binary) - len(end_binary) - 1) + end_binary[::-1] # Check if number's binary representation is less than or equal to inverted_end return (number & inverted_end) == 0 print(is_within_range(5, 2, 10)) # Output: True print(is_within_range(15, 2, 10)) # Output: False

In the above example, we've created a function called is_within_range that checks whether a given number is within a specified range efficiently using bitwise operations. We convert the start, end, and the number to binary and perform bitwise operations to check the range condition.

Quiz 💡

Quick Quiz
Question 1 of 1

What is the output of the following bitwise AND operation?

That's it for this lesson on Python Bitwise Operators! With practice, you'll become proficient in using these operators to solve complex problems in a more efficient manner. Happy coding! 🚀


This article is optimized for search engines using relevant keywords and structured content, making it SEO-friendly.