📖 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
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.