What does it mean to set a specific bit in a number?
Setting a bit means changing that bit to 1, regardless of its current value.
Click to reveal answer
beginner
How do you clear a specific bit in a number?
Clearing a bit means changing that bit to 0, regardless of its current value.
Click to reveal answer
beginner
What does toggle a bit mean?
Toggling a bit means changing it from 0 to 1 or from 1 to 0.
Click to reveal answer
beginner
Which operator is used to set a bit at position pos in Python?
Use the bitwise OR operator (|) with (1 << pos). Example: num | (1 << pos)
Click to reveal answer
beginner
How do you clear a bit at position pos using bitwise operators?
Use bitwise AND (&) with the negation of (1 << pos): num & ~(1 << pos)
Click to reveal answer
What is the result of setting bit 2 (0-based) in the number 8 (binary 1000)?
A12 (binary 1100)
B10 (binary 1010)
C14 (binary 1110)
D8 (binary 1000)
✗ Incorrect
Setting bit 2 means turning the third bit from right to 1. 8 is 1000, setting bit 2 adds 4 (0100), so 1000 | 0100 = 1100 (12).
Which operation toggles a bit at position pos?
Anum | (1 << pos)
Bnum & ~(1 << pos)
Cnum << pos
Dnum ^ (1 << pos)
✗ Incorrect
XOR (^) with (1 << pos) flips the bit at pos: 0 becomes 1, 1 becomes 0.
Clearing a bit means:
AFlipping its value
BSetting it to 1
CSetting it to 0
DLeaving it unchanged
✗ Incorrect
Clearing a bit means making that bit 0.
What does the expression num & ~(1 << pos) do?
ASets bit pos to 1
BClears bit pos to 0
CToggles bit pos
DChecks if bit pos is set
✗ Incorrect
It clears the bit at position pos by ANDing with the inverse mask.
If num = 5 (binary 0101), what is the result of toggling bit 0?
A4 (binary 0100)
B7 (binary 0111)
C1 (binary 0001)
D5 (binary 0101)
✗ Incorrect
Toggling bit 0 flips the rightmost bit: 0101 ^ 0001 = 0100 (4).
Explain how to set, clear, and toggle a specific bit in a number using bitwise operators.
Think about how each operator affects bits at a given position.
You got /3 concepts.
Describe a real-life example where setting, clearing, or toggling bits might be useful.
Think about simple yes/no settings stored in one number.
You got /3 concepts.
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
Step 1: Understand bitwise OR with shifted 1
The expression 1 << k creates a number with only the k-th bit set to 1.
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.
Final Answer:
Sets the k-th bit of num to 1 -> Option A
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
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.
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.
Final Answer:
num & ~(1 << k) -> Option D
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
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.
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.
Final Answer:
40 -> Option A
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
Step 1: Understand clearing bit logic
To clear a bit, we must AND with the inverse mask, not OR.
Step 2: Identify incorrect operator usage
The code uses OR (|) which sets bits, so it cannot clear the bit. It should use AND (&).
Final Answer:
Using OR instead of AND to clear the bit -> Option B
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
Step 1: Toggle bit 0 on num=0
num = 0 ^ (1 << 0) = 0 ^ 1 = 1 (binary 00001)
Step 2: Toggle bit 2 on num=1
num = 1 ^ (1 << 2) = 1 ^ 4 = 5 (binary 00101)
Step 3: Toggle bit 4 on num=5
num = 5 ^ (1 << 4) = 5 ^ 16 = 21 (binary 10101)
Final Answer:
21 -> Option C
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 unknownstrongwhile earning +1 Grip toward your certificate.