Bird
Raised Fist0
DSA Cprogramming~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?
Toggling a bit means changing it from 0 to 1 or from 1 to 0, flipping its current value.
Click to reveal answer
intermediate
Which operator is used to set a bit at position pos in C?
The bitwise OR operator (|) with a mask: num | (1 << pos) sets the bit at pos.
Click to reveal answer
intermediate
How do you toggle a bit at position pos in C?
Use the bitwise XOR operator (^): num ^ (1 << pos) flips the bit at pos.
Click to reveal answer
Which operation sets the 3rd bit (0-based) of number num in C?
Anum ^ (1 << 3)
Bnum & ~(1 << 3)
Cnum | (1 << 3)
Dnum & (1 << 3)
How do you clear the 2nd bit of num?
Anum & ~(1 << 2)
Bnum | (1 << 2)
Cnum ^ (1 << 2)
Dnum & (1 << 2)
What does num ^ (1 << pos) do?
ASets the bit at pos
BToggles the bit at pos
CClears the bit at pos
DChecks the bit at pos
If num = 8 (1000 binary), what is num | (1 << 1)?
A10 (1010 binary)
B12 (1100 binary)
C0 (0000 binary)
D9 (1001 binary)
Which operator is used to clear a bit?
ABitwise OR (|)
BBitwise XOR (^)
CBitwise NOT (~)
DBitwise AND (&) with negated mask
Explain how to set, clear, and toggle a specific bit in a number using bitwise operators in C.
Think about how each operator affects bits: OR sets, AND clears, XOR flips.
You got /3 concepts.
    Describe a real-life example where toggling a bit might be useful.
    Imagine a light switch that can be flipped on or off.
    You got /3 concepts.

      Practice

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

      Solution

      1. Step 1: Understand the bit shift operation

        1 << k creates a number with only the k-th bit set to 1 and others 0.
      2. Step 2: Apply bitwise OR to set the 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 D
      4. Quick Check:

        Set bit = OR with 1 shifted [OK]
      Hint: Use OR with 1 shifted 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 C statements correctly clears the k-th bit of an integer num?
      easy
      A. num = num << k;
      B. num &= ~(1 << k);
      C. num ^= (1 << k);
      D. num |= (1 << k);

      Solution

      1. Step 1: Understand clearing a bit

        Clearing means setting the bit to 0. We use AND with the complement of the bit mask.
      2. Step 2: Analyze the options

        num &= ~(1 << k); clears the k-th bit by ANDing with all 1s except 0 at k-th bit.
      3. Final Answer:

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

        Clear bit = AND with NOT of shifted 1 [OK]
      Hint: Use AND with NOT of 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
      int k = 1;
      num ^= (1 << k);
      printf("%d", num);
      medium
      A. 12
      B. 10
      C. 8
      D. 14

      Solution

      1. Step 1: Understand initial value and bit positions

        num = 10 (binary 1010), k = 1 means second bit from right (0-based).
      2. Step 2: Apply XOR to toggle the k-th bit

        Toggle bit 1: bit at position 1 is 1 in 1010, toggling it changes to 0, so binary becomes 1000 which is 8.
      3. Final Answer:

        8 -> Option C
      4. Quick Check:

        Toggle bit 1 in 1010 = 1000 = 8 [OK]
      Hint: XOR toggles bit: 1 becomes 0, 0 becomes 1 [OK]
      Common Mistakes:
      • Confusing toggle with set or clear
      • Miscounting bit positions starting from 1 instead of 0
      • Assuming XOR always sets bit
      4. The following code is intended to clear the 3rd bit of num. What is the error?
      int num = 15; // binary 1111
      int k = 3;
      num = num & (1 << k);
      medium
      A. It clears all bits except the 3rd bit
      B. It sets the 3rd bit instead of clearing
      C. It toggles the 3rd bit instead of clearing
      D. No error, code works correctly

      Solution

      1. Step 1: Analyze the bitwise AND operation

        The code does num & (1 << k), which keeps only the k-th bit and clears others.
      2. Step 2: Understand the intended operation

        To clear the k-th bit, we must AND with the complement of the bit mask, not the mask itself.
      3. Final Answer:

        It clears all bits except the 3rd bit -> Option A
      4. Quick Check:

        AND with mask keeps only that bit, not clears it [OK]
      Hint: Clear bit = AND with NOT of mask, not mask alone [OK]
      Common Mistakes:
      • Using mask instead of its complement to clear bit
      • Confusing AND with OR for clearing bits
      • Assuming AND with mask clears bit
      5. You want to toggle the 0th and 2nd bits of an integer num simultaneously. Which expression correctly does this in C?
      hard
      A. num ^= (1 << 0) | (1 << 2);
      B. num |= (1 << 0) & (1 << 2);
      C. num &= ~( (1 << 0) | (1 << 2) );
      D. num = (num << 0) ^ (num << 2);

      Solution

      1. Step 1: Understand toggling multiple bits

        Toggling bits uses XOR. To toggle multiple bits, XOR with mask having those bits set.
      2. Step 2: Create mask for bits 0 and 2

        Mask is (1 << 0) | (1 << 2), which sets bits 0 and 2 to 1.
      3. Step 3: Apply XOR with mask

        Expression num ^= (1 << 0) | (1 << 2); toggles both bits simultaneously.
      4. Final Answer:

        num ^= (1 << 0) | (1 << 2); -> Option A
      5. Quick Check:

        XOR with combined mask toggles multiple bits [OK]
      Hint: XOR with ORed shifted bits toggles multiple bits [OK]
      Common Mistakes:
      • Using AND or OR instead of XOR for toggling
      • Incorrectly combining masks with AND
      • Misusing shift operations in 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