Bird
Raised Fist0
DSA Pythonprogramming~15 mins

Set Clear Toggle a Specific Bit in DSA Python - Build from Scratch

Choose your learning style10 modes available
Set Clear Toggle a Specific Bit
📖 Scenario: Imagine you have a number that represents some settings in a device. Each bit in the number can be turned on, turned off, or flipped to change the device's behavior.
🎯 Goal: You will learn how to set (turn on), clear (turn off), and toggle (flip) a specific bit in a number using simple bit operations.
📋 What You'll Learn
Create a variable called number with the value 29
Create a variable called bit_position with the value 3
Write code to set the bit at bit_position in number and store it in set_bit
Write code to clear the bit at bit_position in number and store it in clear_bit
Write code to toggle the bit at bit_position in number and store it in toggle_bit
Print the values of set_bit, clear_bit, and toggle_bit
💡 Why This Matters
🌍 Real World
Bit manipulation is used in device control, graphics, network protocols, and compression where individual bits represent flags or options.
💼 Career
Understanding bit operations is important for roles in embedded systems, game development, and performance-critical software engineering.
Progress0 / 4 steps
1
Create the initial number and bit position
Create a variable called number and set it to 29. Create another variable called bit_position and set it to 3.
DSA Python
Hint

Use simple assignment to create number and bit_position.

2
Create a mask for the bit position
Create a variable called mask that has a 1 bit shifted left by bit_position. Use the left shift operator <<.
DSA Python
Hint

Shift 1 left by bit_position to create the mask.

3
Set, clear, and toggle the bit
Create three variables: set_bit, clear_bit, and toggle_bit. Use the bitwise OR | to set the bit, bitwise AND with negated mask & ~mask to clear the bit, and bitwise XOR ^ to toggle the bit in number.
DSA Python
Hint

Use | to set, & ~ to clear, and ^ to toggle the bit.

4
Print the results
Print the values of set_bit, clear_bit, and toggle_bit each on a separate line.
DSA Python
Hint

Use three print statements to show the results.

Practice

(1/5)
1. What does the operation num | (1 << k) do to the number num in terms of its bits?
easy
A. Sets the k-th bit of num to 1
B. Clears the k-th bit of num to 0
C. Toggles the k-th bit of num
D. Checks if the k-th bit of num is set

Solution

  1. Step 1: Understand bitwise OR with shifted 1

    The expression 1 << k creates a number with only the k-th bit set to 1.
  2. Step 2: Apply OR operation to set bit

    Using num | (1 << k) sets the k-th bit of num to 1 without changing other bits.
  3. Final Answer:

    Sets the k-th bit of num to 1 -> Option A
  4. Quick Check:

    OR with 1 at bit k sets that bit [OK]
Hint: Use OR with 1 shifted to set a bit [OK]
Common Mistakes:
  • Confusing OR with AND operation
  • Thinking it clears or toggles the bit
  • Misunderstanding bit positions starting at 0
2. Which of the following Python expressions correctly clears (sets to 0) the k-th bit of an integer num?
easy
A. num & (1 << k)
B. num ^ (1 << k)
C. num | ~(1 << k)
D. num & ~(1 << k)

Solution

  1. Step 1: Understand clearing a bit

    To clear the k-th bit, we want to keep all bits except the k-th bit set to 0.
  2. Step 2: Use AND with NOT mask

    The mask ~(1 << k) has all bits set to 1 except the k-th bit which is 0. ANDing with this clears the k-th bit.
  3. Final Answer:

    num & ~(1 << k) -> Option D
  4. Quick Check:

    AND with inverted mask clears bit [OK]
Hint: AND with NOT of shifted 1 clears bit [OK]
Common Mistakes:
  • Using OR instead of AND to clear bits
  • Forgetting to invert the mask
  • Using XOR which toggles instead of clears
3. What is the output of the following code?
num = 42  # binary 101010
k = 1
result = num ^ (1 << k)
print(result)
medium
A. 40
B. 43
C. 44
D. 41

Solution

  1. Step 1: Convert num and identify bit

    42 in binary is 101010. The bit positions (0-based) from right are: bit 0=0, bit 1=1, bit 2=0, bit 3=1, bit 4=0, bit 5=1.
  2. Step 2: Toggle bit 1 using XOR

    1 << 1 is 2 (binary 10). XOR toggles bit 1: original bit 1 is 1, toggled to 0. So binary becomes 101000 which is 40 decimal.
  3. Final Answer:

    40 -> Option A
  4. Quick Check:

    XOR toggles bit 1 from 1 to 0 [OK]
Hint: XOR toggles bit; check original bit to find result [OK]
Common Mistakes:
  • Confusing XOR with OR or AND
  • Miscounting bit positions
  • Forgetting bits are zero-indexed from right
4. The following code is intended to clear the 3rd bit (0-based) of num. What is the error?
num = 29  # binary 11101
k = 3
num = num | ~(1 << k)
print(num)
medium
A. Incorrect bit shift direction
B. Using OR instead of AND to clear the bit
C. Missing parentheses around bitwise NOT
D. No error, code works correctly

Solution

  1. Step 1: Understand clearing bit logic

    To clear a bit, we must AND with the inverse mask, not OR.
  2. Step 2: Identify incorrect operator usage

    The code uses OR (|) which sets bits, so it cannot clear the bit. It should use AND (&).
  3. Final Answer:

    Using OR instead of AND to clear the bit -> Option B
  4. Quick Check:

    Clear bit requires AND with NOT mask [OK]
Hint: Clear bit uses AND with NOT mask, not OR [OK]
Common Mistakes:
  • Using OR instead of AND to clear bits
  • Confusing bitwise NOT precedence
  • Assuming code works without testing
5. You have a number num = 0. You want to toggle bits 0, 2, and 4 in sequence using the expression num = num ^ (1 << k). What is the final decimal value of num after toggling these bits?
hard
A. 15
B. 31
C. 21
D. 10

Solution

  1. Step 1: Toggle bit 0 on num=0

    num = 0 ^ (1 << 0) = 0 ^ 1 = 1 (binary 00001)
  2. Step 2: Toggle bit 2 on num=1

    num = 1 ^ (1 << 2) = 1 ^ 4 = 5 (binary 00101)
  3. Step 3: Toggle bit 4 on num=5

    num = 5 ^ (1 << 4) = 5 ^ 16 = 21 (binary 10101)
  4. Final Answer:

    21 -> Option C
  5. Quick Check:

    Toggling bits 0,2,4 sets bits to 1, sum 1+4+16=21 [OK]
Hint: Toggle bits one by one with XOR, sum powers of two [OK]
Common Mistakes:
  • Toggling bits in wrong order
  • Miscounting bit positions
  • Adding instead of XORing 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