Bird
Raised Fist0
DSA C#programming~10 mins

Set Clear Toggle a Specific Bit in DSA C# - 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 bit at position 2 in the number.

DSA C#
int number = 8; // binary 1000
int position = 2;
int result = number | (1 << [1]);
Console.WriteLine(result);
Drag options to blanks, or click blank then click option'
A1
Bposition
C3
D2
Attempts:
3 left
💡 Hint
Common Mistakes
Using a fixed number instead of the position variable.
Using the wrong bit position.
2fill in blank
medium

Complete the code to clear the bit at position 1 in the number.

DSA C#
int number = 7; // binary 0111
int position = 1;
int result = number & ~(1 << [1]);
Console.WriteLine(result);
Drag options to blanks, or click blank then click option'
Aposition
B2
C1
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using a fixed number instead of the position variable.
Forgetting to invert the mask with ~.
3fill in blank
hard

Fix the error in toggling the bit at position 0.

DSA C#
int number = 5; // binary 0101
int position = 0;
int result = number [1] (1 << position);
Console.WriteLine(result);
Drag options to blanks, or click blank then click option'
A&
B|
C^
D~
Attempts:
3 left
💡 Hint
Common Mistakes
Using AND or OR instead of XOR for toggling.
Using NOT operator incorrectly.
4fill in blank
hard

Fill both blanks to set and then clear the bit at position 3.

DSA C#
int number = 10; // binary 1010
int position = 3;
int setBit = number [1] (1 << position);
int clearBit = setBit [2] ~(1 << position);
Console.WriteLine(clearBit);
Drag options to blanks, or click blank then click option'
A|
B&
C~
D^
Attempts:
3 left
💡 Hint
Common Mistakes
Using XOR instead of OR to set bit.
Not inverting the mask when clearing.
5fill in blank
hard

Fill all three blanks to toggle bit at position 2, then set bit at position 1, then clear bit at position 0.

DSA C#
int number = 6; // binary 0110
int togglePos = 2;
int setPos = 1;
int clearPos = 0;
int step1 = number [1] (1 << togglePos);
int step2 = step1 [2] (1 << setPos);
int step3 = step2 [3] ~(1 << clearPos);
Console.WriteLine(step3);
Drag options to blanks, or click blank then click option'
A^
B|
C&
D~
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up operators for toggle, set, and clear.
Forgetting to invert mask when clearing.

Practice

(1/5)
1. What does the operation number |= (1 << position) do to the bit at position in number?
easy
A. Toggles the bit at position
B. Clears the bit at position to 0
C. Sets the bit at position to 1
D. Checks if the bit at position is set

Solution

  1. Step 1: Understand the bitwise OR with shifted 1

    The expression 1 << position creates a number with only the bit at position set to 1. Using OR (|=) with this sets that bit in number to 1 without changing other bits.
  2. Step 2: Effect on the bit at position

    Since OR with 1 always results in 1, the bit at position is set to 1 regardless of its previous value.
  3. Final Answer:

    Sets the bit at position to 1 -> Option C
  4. Quick Check:

    OR with 1 sets bit [OK]
Hint: Use OR with shifted 1 to set a bit [OK]
Common Mistakes:
  • Confusing OR with XOR for toggling
  • Thinking it clears the bit
  • Assuming it checks the bit instead
2. Which of the following C# statements correctly clears (sets to 0) the bit at position pos in an integer num?
easy
A. num &= ~(1 << pos);
B. num |= (1 << pos);
C. num ^= (1 << pos);
D. num = num << pos;

Solution

  1. Step 1: Understand clearing a bit

    To clear a bit, we use AND with the complement of a mask that has 1 at the target bit. The mask is 1 << pos, so complement is ~(1 << pos).
  2. Step 2: Apply AND with complemented mask

    Using num &= ~(1 << pos); clears the bit at pos while leaving others unchanged.
  3. Final Answer:

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

    AND with complement clears bit [OK]
Hint: Use AND with NOT mask to clear a bit [OK]
Common Mistakes:
  • Using OR instead of AND to clear
  • Using XOR which toggles instead of clears
  • Using left shift alone which changes number
3. What is the output of the following C# code?
int num = 10; // binary 1010
int pos = 1;
num ^= (1 << pos);
Console.WriteLine(num);
medium
A. 10
B. 14
C. 12
D. 8

Solution

  1. Step 1: Understand initial number and bit position

    Number 10 in binary is 1010. Position 1 means the second bit from right (0-based). Bit at position 1 is 1.
  2. Step 2: Apply XOR to toggle bit at position 1

    XOR toggles the bit. Since bit at position 1 is 1, toggling it changes it to 0. New binary is 1000 which is decimal 8.
  3. Final Answer:

    8 -> Option D
  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 XOR with OR or AND
  • Miscounting bit positions (0-based)
  • Assuming no change if bit is 1
4. The following code is intended to toggle the bit at position pos in num. What is the error?
int num = 5; // binary 0101
int pos = 2;
num = num & (1 << pos);
Console.WriteLine(num);
medium
A. It clears all bits except the one at pos
B. It toggles the bit correctly
C. It sets the bit at pos to 1
D. It causes a syntax error

Solution

  1. Step 1: Analyze the operation used

    The code uses AND (&) with 1 << pos. This keeps only the bit at pos if it was set, clearing all others.
  2. Step 2: Compare with toggle operation

    Toggling requires XOR (^), not AND. So this code does not toggle but masks all bits except the one at pos.
  3. Final Answer:

    It clears all bits except the one at pos -> Option A
  4. Quick Check:

    AND with mask keeps only that bit [OK]
Hint: Use XOR to toggle, AND masks bits [OK]
Common Mistakes:
  • Using AND instead of XOR for toggle
  • Expecting toggle but getting masked value
  • Confusing bitwise operators
5. You have an integer num and want to toggle the bit at position pos only if it is currently set (1). Which code snippet correctly does this?
hard
A. if ((num ^ (1 << pos)) != 0) num ^= (1 << pos);
B. if ((num & (1 << pos)) != 0) num ^= (1 << pos);
C. if ((num & ~(1 << pos)) != 0) num ^= (1 << pos);
D. if ((num | (1 << pos)) != 0) num ^= (1 << pos);

Solution

  1. Step 1: Check if bit at pos is set

    Using num & (1 << pos) checks if bit at pos is 1. If result is not zero, bit is set.
  2. Step 2: Toggle bit only if set

    If bit is set, toggle it using XOR: num ^= (1 << pos);. This flips the bit from 1 to 0.
  3. Final Answer:

    if ((num & (1 << pos)) != 0) num ^= (1 << pos); -> Option B
  4. Quick Check:

    Check bit with AND, toggle with XOR [OK]
Hint: Check bit with AND before toggling with XOR [OK]
Common Mistakes:
  • Using OR instead of AND to check bit
  • Toggling without checking bit first
  • Using incorrect mask complement
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