Bird
Raised Fist0
DSA Javaprogramming~20 mins

Set Clear Toggle a Specific Bit in DSA Java - 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?
Given the integer value 8 (binary 1000), what is the output after setting the 3rd bit (0-based from right)?
DSA Java
int num = 8;
int bitPosition = 3;
int result = num | (1 << bitPosition);
System.out.println(result);
A16
B8
C12
D0
Attempts:
2 left
💡 Hint
Remember that setting a bit means making sure that bit is 1 using OR operation.
❓ Predict Output
intermediate
2:00remaining
What is the output after clearing the 2nd bit?
Given the integer value 14 (binary 1110), what is the output after clearing the 2nd bit (0-based from right)?
DSA Java
int num = 14;
int bitPosition = 2;
int result = num & ~(1 << bitPosition);
System.out.println(result);
A8
B6
C14
D10
Attempts:
2 left
💡 Hint
Clearing a bit means making that bit 0 using AND with NOT mask.
❓ Predict Output
advanced
2:00remaining
What is the output after toggling the 1st bit?
Given the integer value 5 (binary 0101), what is the output after toggling the 1st bit (0-based from right)?
DSA Java
int num = 5;
int bitPosition = 1;
int result = num ^ (1 << bitPosition);
System.out.println(result);
A5
B3
C7
D4
Attempts:
2 left
💡 Hint
Toggling flips the bit: 0 becomes 1, 1 becomes 0 using XOR.
🧠 Conceptual
advanced
1:30remaining
Which operation clears a specific bit at position k?
Which bitwise operation correctly clears the bit at position k (0-based from right) in integer n?
An & ~(1 << k)
Bn | (1 << k)
Cn & (1 << k)
Dn ^ (1 << k)
Attempts:
2 left
💡 Hint
Clearing means setting the bit to 0 without affecting others.
🔧 Debug
expert
2:30remaining
Why does this toggle bit code fail for negative numbers?
Consider this code to toggle the 4th bit of an integer n: int result = n ^ (1 << 4); Why might this code produce unexpected results when n is negative?
DSA Java
int n = -16;
int result = n ^ (1 << 4);
System.out.println(result);
ABecause negative numbers use two's complement and toggling bit 4 changes sign unexpectedly
BBecause left shift on negative numbers causes sign bit corruption
CBecause XOR cannot be used with negative numbers
DBecause bit positions start at 1, not 0
Attempts:
2 left
💡 Hint
Think about how negative numbers are stored and how toggling bits affects sign.

Practice

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

Solution

  1. Step 1: Understand the bit shift operation

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

    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 C
  4. Quick Check:

    Set bit = OR with 1 shifted [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 Java statements correctly clears (sets to 0) the 3rd bit (0-based) of an integer variable num?
easy
A. num = num & (1 << 3);
B. num = num & ~(1 << 3);
C. num = num ^ (1 << 3);
D. num = num | (1 << 3);

Solution

  1. Step 1: Understand clearing a bit

    To clear a bit, we AND with a mask that has 0 at that bit and 1s elsewhere.
  2. Step 2: Create mask and apply

    ~(1 << 3) creates a mask with all 1s except 0 at bit 3. ANDing num with this clears bit 3.
  3. Final Answer:

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

    Clear bit = AND with NOT mask [OK]
Hint: Clear bit by AND with NOT of shifted 1 [OK]
Common Mistakes:
  • Using OR instead of AND to clear bits
  • Using XOR which toggles bits
  • Using AND with shifted 1 which keeps only that bit
3. What is the output of the following Java code?
int num = 10; // binary 1010
int k = 1;
num = num ^ (1 << k);
System.out.println(num);
medium
A. 10
B. 14
C. 12
D. 8

Solution

  1. Step 1: Understand initial value and bit positions

    num = 10 in binary is 1010. Bit positions (0-based) from right: bit0=0, bit1=1, bit2=0, bit3=1.
  2. Step 2: Apply XOR to toggle bit 1

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

    8 -> Option D
  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
  • Misreading bit positions starting at 1 instead of 0
  • Incorrect binary to decimal conversion
4. The following Java code is intended to toggle the 2nd bit of num. What is the error?
int num = 5; // binary 0101
int k = 2;
num = num & (1 << k);
System.out.println(num);
medium
A. It clears all bits except the 2nd bit instead of toggling
B. It toggles the wrong bit
C. It causes a syntax error
D. It sets the 2nd bit to 1 always

Solution

  1. Step 1: Analyze the operation used

    The code uses AND with 1 << k, which keeps only the k-th bit and clears others.
  2. Step 2: Understand toggle operation

    Toggle requires XOR, not AND. AND here does not toggle but masks all bits except bit 2.
  3. Final Answer:

    It clears all bits except the 2nd bit instead of toggling -> Option A
  4. Quick Check:

    Toggle = XOR, not AND mask [OK]
Hint: Toggle bits using XOR, not AND [OK]
Common Mistakes:
  • Using AND instead of XOR to toggle bits
  • Confusing bit positions
  • Expecting output without understanding bitwise operations
5. Given an integer num, write a Java expression to toggle the 0th bit only if it is currently set (1), otherwise leave num unchanged. Which expression achieves this?
hard
A. num = (num & (1 << 0)) != 0 ? num ^ (1 << 0) : num;
B. num = num & ~(1 << 0);
C. num = num ^ (1 << 0);
D. num = num | (1 << 0);

Solution

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

    Use (num & (1 << 0)) != 0 to test if bit 0 is 1.
  2. Step 2: Toggle bit 0 only if set

    If bit 0 is set, toggle it with XOR; else keep num unchanged.
  3. Final Answer:

    num = (num & (1 << 0)) != 0 ? num ^ (1 << 0) : num; -> Option A
  4. Quick Check:

    Conditional toggle only if bit set [OK]
Hint: Use conditional check before toggling bit [OK]
Common Mistakes:
  • Toggling bit unconditionally
  • Using OR which always sets bit
  • Clearing bit without condition
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