Bird
Raised Fist0
DSA Pythonprogramming~20 mins

Set Clear Toggle a Specific Bit in DSA Python - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Bitwise Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output after setting the 3rd bit of number 8?
Given the number 8 (binary 1000), what is the output after setting the 3rd bit (0-based from right)?
DSA Python
num = 8
bit_position = 3
result = num | (1 << bit_position)
print(result)
A8
B12
C16
D24
Attempts:
2 left
💡 Hint
Remember that setting a bit means making sure it is 1, using OR operation.
❓ Predict Output
intermediate
2:00remaining
What is the output after clearing the 1st bit of number 7?
Given the number 7 (binary 0111), what is the output after clearing the 1st bit (0-based from right)?
DSA Python
num = 7
bit_position = 1
result = num & ~(1 << bit_position)
print(result)
A3
B6
C5
D1
Attempts:
2 left
💡 Hint
Clearing a bit means making it 0 using AND with NOT mask.
❓ Predict Output
advanced
2:00remaining
What is the output after toggling the 2nd bit of number 10?
Given the number 10 (binary 1010), what is the output after toggling the 2nd bit (0-based from right)?
DSA Python
num = 10
bit_position = 2
result = num ^ (1 << bit_position)
print(result)
A6
B2
C8
D14
Attempts:
2 left
💡 Hint
Toggling flips the bit: 0 to 1 or 1 to 0 using XOR.
🧠 Conceptual
advanced
2:00remaining
Which operation correctly clears the 0th bit of a number n?
Choose the correct expression to clear the 0th bit (least significant bit) of a number n.
An ^ (1 << 0)
Bn & ~(1 << 0)
Cn | (1 << 0)
Dn & (1 << 0)
Attempts:
2 left
💡 Hint
Clearing a bit uses AND with NOT mask.
🔧 Debug
expert
2:00remaining
What error does this code raise when toggling bit 5 of number 15?
Analyze the code below and select the error it raises, if any.
DSA Python
num = 15
bit_position = 5
result = num ^ (1 >> bit_position)
print(result)
AOutput is 15
BNo error, output is 47
CTypeError
DZeroDivisionError
Attempts:
2 left
💡 Hint
Check the bit shift direction and its effect.

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