Bird
Raised Fist0
DSA Pythonprogramming~10 mins

Set Clear Toggle a Specific Bit in DSA Python - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to set the 3rd bit of number n.

DSA Python
n = 8
n = n | (1 << [1])
print(bin(n))
Drag options to blanks, or click blank then click option'
A2
B0
C1
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Using 3 instead of 2 for the bit position.
2fill in blank
medium

Complete the code to clear the 1st bit of number n.

DSA Python
n = 15
n = n & ~(1 << [1])
print(bin(n))
Drag options to blanks, or click blank then click option'
A3
B1
C2
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using 1 instead of 0 for the bit position.
3fill in blank
hard

Fix the error in the code to toggle the 4th bit of number n.

DSA Python
n = 10
n = n ^ (1 << [1])
print(bin(n))
Drag options to blanks, or click blank then click option'
A3
B4
C2
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using 4 instead of 3 for the bit position.
4fill in blank
hard

Fill both blanks to set and then clear the 2nd bit of number n.

DSA Python
n = 5
n = n | (1 << [1])
n = n & ~(1 << [2])
print(bin(n))
Drag options to blanks, or click blank then click option'
A1
B2
C0
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Using different bit positions for set and clear.
5fill in blank
hard

Fill all three blanks to toggle the 1st bit, set the 3rd bit, and clear the 2nd bit of number n.

DSA Python
n = 0
n = n ^ (1 << [1])
n = n | (1 << [2])
n = n & ~(1 << [3])
print(bin(n))
Drag options to blanks, or click blank then click option'
A0
B2
C1
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up bit indices for toggle, set, and clear.

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