Bird
Raised Fist0
DSA Pythonprogramming~15 mins

Bit Manipulation Basics AND OR XOR NOT Left Right Shift in DSA Python - Build from Scratch

Choose your learning style10 modes available
Bit Manipulation Basics AND OR XOR NOT Left Right Shift
📖 Scenario: Imagine you are working with a simple electronic device that stores settings as numbers. Each setting is controlled by bits (0s and 1s). You want to learn how to change these bits using basic operations like AND, OR, XOR, NOT, and shifting bits left or right.
🎯 Goal: You will create a small program that shows how to use bit manipulation operations on two numbers. You will see how these operations change the bits and the resulting numbers.
📋 What You'll Learn
Create two integer variables with exact values
Create a variable for a bit shift amount
Use bitwise AND, OR, XOR, NOT, left shift, and right shift operations
Print the results of each operation
💡 Why This Matters
🌍 Real World
Bit manipulation is used in low-level programming, device control, and performance optimization where direct control of bits is needed.
💼 Career
Understanding bitwise operations is important for roles in embedded systems, systems programming, and software development that requires efficient data handling.
Progress0 / 4 steps
1
Create two integer variables
Create two integer variables called num1 and num2 with values 12 and 5 respectively.
DSA Python
Hint

Use simple assignment to create num1 and num2 with the given numbers.

2
Create a variable for bit shift amount
Create an integer variable called shift and set it to 2.
DSA Python
Hint

Use simple assignment to create shift with the value 2.

3
Apply bitwise operations
Create variables to store the results of bitwise operations between num1 and num2: and_result for AND, or_result for OR, xor_result for XOR. Also create not_num1 for NOT of num1, left_shift for num1 shifted left by shift, and right_shift for num1 shifted right by shift.
DSA Python
Hint

Use & for AND, | for OR, ^ for XOR, ~ for NOT, << for left shift, and >> for right shift.

4
Print the results
Print the values of and_result, or_result, xor_result, not_num1, left_shift, and right_shift each on its own line.
DSA Python
Hint

Use print() to show each result on its own line.

Practice

(1/5)
1. What is the result of the bitwise AND operation between 5 and 3? (5 = 0101, 3 = 0011 in binary)
easy
A. 1
B. 7
C. 6
D. 0

Solution

  1. Step 1: Convert numbers to binary

    5 in binary is 0101, 3 in binary is 0011.
  2. Step 2: Perform bitwise AND

    0101 AND 0011 = 0001 (only bits set in both numbers remain set).
  3. Final Answer:

    1 -> Option A
  4. Quick Check:

    5 & 3 = 1 [OK]
Hint: AND keeps bits set in both numbers only [OK]
Common Mistakes:
  • Confusing AND with OR operation
  • Not converting numbers to binary before operation
  • Assuming decimal addition instead of bitwise AND
2. Which of the following is the correct syntax to perform a left shift by 2 bits on variable x in Python?
easy
A. x <<< 2
B. x >> 2
C. x << 2
D. x >>| 2

Solution

  1. Step 1: Understand left shift operator in Python

    Left shift is done using << operator, shifting bits to the left.
  2. Step 2: Check syntax options

    Only x << 2 correctly shifts bits left by 2 places.
  3. Final Answer:

    x << 2 -> Option C
  4. Quick Check:

    Left shift uses << operator [OK]
Hint: Use << for left shift, >> for right shift [OK]
Common Mistakes:
  • Using >>> which is not valid in Python
  • Confusing left shift with right shift operator
  • Using invalid operators like >>|
3. What is the output of the following Python code?
num = 12  # binary 1100
result = num >> 2
print(result)
medium
A. 6
B. 0
C. 48
D. 3

Solution

  1. Step 1: Convert number and apply right shift

    12 in binary is 1100. Right shifting by 2 bits removes last two bits: 1100 >> 2 = 0011.
  2. Step 2: Convert shifted binary back to decimal

    0011 in binary is 3 in decimal.
  3. Final Answer:

    3 -> Option D
  4. Quick Check:

    12 >> 2 = 3 [OK]
Hint: Right shift divides number by 2^shift count [OK]
Common Mistakes:
  • Confusing right shift with left shift
  • Not converting binary back to decimal
  • Assuming shift multiplies instead of divides
4. Identify the error in the following code snippet:
value = 10
result = ~value << 1
print(result)
medium
A. Result is -22 due to operator precedence
B. RuntimeError due to invalid shift
C. Result is 21 due to incorrect bitwise NOT
D. SyntaxError due to incorrect operator usage

Solution

  1. Step 1: Evaluate bitwise NOT and shift

    ~10 equals -11 (because ~x = -x-1). Then shifting left by 1 bit multiplies by 2: -11 << 1 = -22.
  2. Step 2: Check operator precedence and final value

    Because ~ has higher precedence, ~10 is evaluated first, then shifted. So result is -22, but print shows -22.
  3. Final Answer:

    Result is -22 due to operator precedence -> Option A
  4. Quick Check:

    ~10 << 1 = -22 [OK]
Hint: Bitwise NOT flips bits, watch operator precedence [OK]
Common Mistakes:
  • Assuming ~10 is positive
  • Ignoring operator precedence between ~ and <<
  • Expecting shift to apply before NOT
5. Given two integers a = 9 and b = 14, which expression will toggle the bits where a and b differ?
hard
A. a | b
B. a ^ b
C. a & b
D. ~a

Solution

  1. Step 1: Understand toggling bits where numbers differ

    Toggling bits means flipping bits that are different between two numbers.
  2. Step 2: Identify bitwise XOR operation

    XOR (^) returns 1 where bits differ and 0 where bits are same, effectively toggling differing bits.
  3. Final Answer:

    a ^ b -> Option B
  4. Quick Check:

    XOR toggles differing bits [OK]
Hint: XOR flips bits where inputs differ [OK]
Common Mistakes:
  • Using AND or OR which do not toggle bits
  • Confusing NOT (~) with XOR
  • Assuming OR toggles bits
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard