Bird
Raised Fist0
DSA C++programming~5 mins

Set Clear Toggle a Specific Bit in DSA C++ - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
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 it mean to toggle a specific bit in a number?
Toggling a bit means flipping it: if it is 1, change it to 0; if it is 0, change it to 1.
Click to reveal answer
intermediate
Which bitwise operator is used to set a bit?
The OR operator (|) is used to set a bit by OR-ing the number with a mask that has 1 at the target bit position.
Click to reveal answer
beginner
How do you create a mask to target the nth bit for setting, clearing, or toggling?
Use (1 << n) to create a mask with only the nth bit set to 1, where n is the bit position starting from 0.
Click to reveal answer
Which operation sets the 3rd bit of number x to 1 without changing other bits?
Ax = x & ~(1 << 3)
Bx = x ^ (1 << 3)
Cx = x | (1 << 3)
Dx = x & (1 << 3)
How do you clear the 2nd bit of number x?
Ax = x & ~(1 << 2)
Bx = x | (1 << 2)
Cx = x ^ (1 << 2)
Dx = x & (1 << 2)
What does toggling the 1st bit of x do?
ALeaves the 1st bit unchanged
BClears the 1st bit to 0
CSets the 1st bit to 1
DFlips the 1st bit from 0 to 1 or 1 to 0
What is the mask to target the 5th bit (0-based) in a number?
A1 << 5
B5 << 1
C1 << 6
D1 << 4
Which operator is used to toggle a bit?
A&
B^
C|
D~
Explain how to set, clear, and toggle a specific bit in a number using bitwise operators.
Think about how each operator affects bits when combined with a mask.
You got /4 concepts.
    Describe how to create a mask for the nth bit and why it is important in bit manipulation.
    Focus on how shifting 1 left by n positions targets the nth bit.
    You got /4 concepts.

      Practice

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

      Solution

      1. Step 1: Understand the bit shift operation

        The expression 1 << k creates a number with only the k-th bit set to 1 and all others 0.
      2. Step 2: Apply bitwise OR to set the bit

        Using |= with this mask 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 B
      4. Quick Check:

        num |= (1 << k) sets bit k [OK]
      Hint: Use OR with shifted 1 to set a bit [OK]
      Common Mistakes:
      • Confusing set with clear operation
      • Using AND instead of OR to set bits
      • Misunderstanding bit positions starting from 0
      2. Which of the following is the correct syntax to clear the 3rd bit (0-indexed) of an integer variable num in C++?
      easy
      A. num &= ~(1 << 3);
      B. num |= (1 << 3);
      C. num ^= (1 << 3);
      D. num = (num & (1 << 3));

      Solution

      1. Step 1: Create mask to clear bit

        1 << 3 sets only the 3rd bit. Negating it with ~ creates a mask with all bits 1 except the 3rd bit 0.
      2. Step 2: Use AND assignment to clear bit

        Applying &= with this mask clears the 3rd bit of num while keeping others unchanged.
      3. Final Answer:

        num &= ~(1 << 3); -> Option A
      4. Quick Check:

        AND with negated mask clears bit [OK]
      Hint: Use AND with negated shifted 1 to clear bit [OK]
      Common Mistakes:
      • Using OR instead of AND to clear bits
      • Forgetting to negate the mask
      • Using XOR which toggles instead of clears
      3. What is the output of the following C++ code?
      int num = 10; // binary 1010
      num ^= (1 << 1);
      std::cout << num << std::endl;
      medium
      A. 8
      B. 10
      C. 12
      D. 14

      Solution

      1. Step 1: Understand initial value and bit positions

        num = 10 in binary is 1010. Bits are indexed from 0 (rightmost). Bit 1 is currently 1.
      2. Step 2: Toggle the 1st bit using XOR

        num ^= (1 << 1) toggles bit 1. Since bit 1 is 1, toggling it changes it to 0. New binary: 1000 (decimal 8).
      3. Final Answer:

        8 -> Option A
      4. Quick Check:

        Toggle bit 1 of 1010 = 1000 = 8 [OK]
      Hint: XOR toggles bits; 1 flips, 0 stays same [OK]
      Common Mistakes:
      • Confusing toggle with set or clear
      • Miscounting bit positions starting at 1 instead of 0
      • Assuming XOR always sets bit
      4. Identify the error in the following code snippet that attempts to clear the 2nd bit of num:
      int num = 15;
      num = num & (1 << 2);
      std::cout << num << std::endl;
      medium
      A. It sets only the 2nd bit instead of clearing it
      B. It toggles the 2nd bit instead of clearing it
      C. It clears all bits except the 2nd bit
      D. It causes a syntax error due to missing parentheses

      Solution

      1. Step 1: Analyze the mask used

        The mask (1 << 2) has only the 2nd bit set to 1, all others 0.
      2. Step 2: Understand the effect of AND with mask

        ANDing num with this mask keeps only the 2nd bit of num and clears all others. This is opposite of clearing the 2nd bit.
      3. Final Answer:

        It clears all bits except the 2nd bit -> Option C
      4. Quick Check:

        AND with mask keeps bit, does not clear it [OK]
      Hint: Use AND with negated mask to clear bits, not plain mask [OK]
      Common Mistakes:
      • Using mask directly instead of negated mask
      • Confusing AND with OR for clearing bits
      • Assuming AND with mask clears bit
      5. Given an integer num, which expression correctly toggles the 0th bit only if it is currently set (1), otherwise leaves num unchanged?
      hard
      A. num ^= 1;
      B. num &= ~1;
      C. num |= 1;
      D. if ((num & 1) == 1) num ^= 1;

      Solution

      1. Step 1: Check if 0th bit is set

        The condition (num & 1) == 1 checks if the least significant bit is 1.
      2. Step 2: Toggle 0th bit only if set

        If the bit is set, num ^= 1 toggles it to 0. Otherwise, no change is made.
      3. Final Answer:

        if ((num & 1) == 1) num ^= 1; -> Option D
      4. Quick Check:

        Toggle only if bit set using condition [OK]
      Hint: Check bit before toggling to avoid unwanted changes [OK]
      Common Mistakes:
      • Toggling bit unconditionally
      • Using OR or AND which always set or clear bit
      • Not checking bit state before toggle
      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