Bird
Raised Fist0
DSA Javascriptprogramming~20 mins

Set Clear Toggle a Specific Bit in DSA Javascript - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Bitwise Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output after setting the 3rd bit of number 8?
Given the number 8 (binary 1000), what is the output after setting the 3rd bit (0-indexed from right)?
DSA Javascript
let num = 8;
let bitPosition = 3;
let result = num | (1 << bitPosition);
console.log(result);
A16
B0
C24
D8
Attempts:
2 left
💡 Hint
Remember that bits are counted from 0 starting at the rightmost bit.
❓ Predict Output
intermediate
2:00remaining
What is the output after clearing the 1st bit of number 7?
Given the number 7 (binary 0111), what is the output after clearing the 1st bit (0-indexed from right)?
DSA Javascript
let num = 7;
let bitPosition = 1;
let result = num & ~(1 << bitPosition);
console.log(result);
A5
B3
C6
D7
Attempts:
2 left
💡 Hint
Clearing a bit means setting it to 0 using AND with the negated mask.
❓ Predict Output
advanced
2:00remaining
What is the output after toggling the 2nd bit of number 10?
Given the number 10 (binary 1010), what is the output after toggling the 2nd bit (0-indexed from right)?
DSA Javascript
let num = 10;
let bitPosition = 2;
let result = num ^ (1 << bitPosition);
console.log(result);
A14
B2
C8
D10
Attempts:
2 left
💡 Hint
Toggling flips the bit: 0 becomes 1, 1 becomes 0.
❓ Predict Output
advanced
2:00remaining
What is the output after toggling the 0th bit of number 15 twice?
Given the number 15 (binary 1111), what is the output after toggling the 0th bit twice in a row?
DSA Javascript
let num = 15;
let bitPosition = 0;
num = num ^ (1 << bitPosition);
num = num ^ (1 << bitPosition);
console.log(num);
A14
B15
C13
D0
Attempts:
2 left
💡 Hint
Toggling the same bit twice returns it to the original state.
🧠 Conceptual
expert
3:00remaining
How many bits are set to 1 after setting, clearing, and toggling bits on number 21?
Start with number 21 (binary 10101). Perform these operations in order:
1. Set the 1st bit
2. Clear the 4th bit
3. Toggle the 2nd bit
How many bits are set to 1 in the final number?
DSA Javascript
let num = 21;
num = num | (1 << 1);    // set 1st bit
num = num & ~(1 << 4);   // clear 4th bit
num = num ^ (1 << 2);    // toggle 2nd bit

// Count bits set to 1
let count = 0;
for(let i = 0; i < 8; i++) {
  if(num & (1 << i)) count++;
}
console.log(count);
A4
B3
C2
D5
Attempts:
2 left
💡 Hint
Track each operation step-by-step in binary.

Practice

(1/5)
1. What does the operation num | (1 << k) do to the number num in terms of bits?
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 bitwise OR with shifted 1

    The expression 1 << k creates a number with only the k-th bit set to 1.
  2. 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.
  3. Final Answer:

    Sets the k-th bit of num to 1 -> Option B
  4. Quick Check:

    Bitwise OR with 1 at position k sets that bit [OK]
Hint: Use OR with shifted 1 to set a bit [OK]
Common Mistakes:
  • Confusing set with clear operation
  • Thinking it toggles the bit
  • Assuming it checks the bit instead
2. Which of the following JavaScript expressions correctly clears the k-th bit of a number num?
easy
A. num ^ (1 << k)
B. num | ~(1 << k)
C. num & (1 << k)
D. num & ~(1 << k)

Solution

  1. Step 1: Understand clearing a bit

    To clear the k-th bit, we want to set it to 0 while keeping others unchanged.
  2. Step 2: Use AND with NOT mask

    The mask ~(1 << k) has all bits 1 except the k-th bit 0. ANDing with this clears the k-th bit.
  3. Final Answer:

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

    AND with inverted mask clears bit [OK]
Hint: AND with NOT of shifted 1 clears a 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 JavaScript code?
let num = 10; // binary 1010
let k = 1;
num = num ^ (1 << k);
console.log(num);
medium
A. 8
B. 10
C. 12
D. 14

Solution

  1. Step 1: Understand initial values and bit positions

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

    1 << 1 = 2 (binary 0010). XOR toggles bit 1: 1010 ^ 0010 = 1000 (binary), which is 8 decimal.
  3. Final Answer:

    8 -> Option A
  4. Quick Check:

    XOR toggles bit 1: 10 -> 8 [OK]
Hint: XOR toggles the bit at position k [OK]
Common Mistakes:
  • Confusing XOR with OR or AND
  • Miscounting bit positions (0-based)
  • Not converting binary to decimal correctly
4. The following code is intended to toggle the k-th bit of num. What is the error?
function toggleBit(num, k) {
  return num & (1 << k);
}
console.log(toggleBit(5, 0));
medium
A. Function does not return a number
B. Incorrect bit shift direction
C. Using AND instead of XOR to toggle the bit
D. Missing parentheses around bit shift

Solution

  1. Step 1: Identify intended toggle operation

    Toggling a bit requires flipping it: 0 to 1 or 1 to 0.
  2. Step 2: Check the operator used

    The code uses AND (&) which masks bits, not toggles. XOR (^) is needed to toggle bits.
  3. Final Answer:

    Using AND instead of XOR to toggle the bit -> Option C
  4. Quick Check:

    Toggle needs XOR, not AND [OK]
Hint: Toggle bits with XOR, not AND [OK]
Common Mistakes:
  • Using AND or OR instead of XOR for toggle
  • Confusing toggle with set or clear
  • Ignoring operator precedence
5. You want to write a function updateBit(num, k, bitValue) that sets the k-th bit of num to bitValue (0 or 1). Which of the following implementations is correct?
hard
A. return (num & ~(1 << k)) | (bitValue << k);
B. return (num | (bitValue << k)) & ~(bitValue << k);
C. return num ^ (bitValue << k);
D. return num & (bitValue << k);

Solution

  1. Step 1: Clear the k-th bit first

    Use num & ~(1 << k) to clear the k-th bit regardless of its current value.
  2. Step 2: Set the k-th bit to bitValue

    Shift bitValue to k-th position and OR it with cleared number to set the bit correctly.
  3. Final Answer:

    return (num & ~(1 << k)) | (bitValue << k); -> Option A
  4. Quick Check:

    Clear then set bit with OR [OK]
Hint: Clear bit then OR with shifted bitValue to update [OK]
Common Mistakes:
  • Using XOR which toggles instead of sets
  • Not clearing bit before setting
  • Using AND which masks bits incorrectly
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