Bird
Raised Fist0
DSA Javaprogramming~5 mins

Set Clear Toggle a Specific Bit in DSA Java - 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.
Click to reveal answer
intermediate
In Java, which operator is used to set a bit at position pos in number num?
Use the bitwise OR operator: num | (1 << pos) sets the bit at position pos.
Click to reveal answer
intermediate
How do you toggle a bit at position pos in Java?
Use the bitwise XOR operator: num ^ (1 << pos) toggles the bit at position pos.
Click to reveal answer
Which operation sets the bit at position 3 in number num?
Anum | (1 << 3)
Bnum & ~(1 << 3)
Cnum ^ (1 << 3)
Dnum & (1 << 3)
Which operation clears the bit at position 2 in number num?
Anum | (1 << 2)
Bnum & ~(1 << 2)
Cnum ^ (1 << 2)
Dnum & (1 << 2)
What does the operation num ^ (1 << pos) do?
AToggles the bit at pos
BClears the bit at pos
CSets the bit at pos
DChecks the bit at pos
If num = 8 (binary 1000), what is the result of num | (1 << 1)?
A9 (binary 1001)
B0 (binary 0000)
C12 (binary 1100)
D10 (binary 1010)
Which operator is used to clear a bit?
AXOR (^)
BOR (|)
CAND (&) with negated mask
DShift (<<)
Explain how to set, clear, and toggle a specific bit in a number using bitwise operators.
Think about how each operator affects bits: OR sets, AND clears, XOR toggles.
You got /3 concepts.
    Given a number and a bit position, describe the steps to change that bit to 1, 0, or flip it.
    Remember shifting 1 to the bit position creates the mask.
    You got /3 concepts.

      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