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)
✗ Incorrect
Setting a bit uses OR with 1 shifted to the bit position.
Which operation clears the bit at position 2 in number num?
Anum | (1 << 2)
Bnum & ~(1 << 2)
Cnum ^ (1 << 2)
Dnum & (1 << 2)
✗ Incorrect
Clearing a bit uses AND with the negation of 1 shifted to the bit position.
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
✗ Incorrect
XOR with 1 flips the bit at the given position.
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)
✗ Incorrect
Setting bit 1 adds 2 to 8, resulting in 10.
Which operator is used to clear a bit?
AXOR (^)
BOR (|)
CAND (&) with negated mask
DShift (<<)
✗ Incorrect
Clearing uses AND with the negation of the bit mask.
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
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.
Step 2: Apply bitwise OR with num
Using num | (1 << k) sets the k-th bit of num to 1 without changing other bits.
Final Answer:
Sets the k-th bit of num to 1 -> Option C
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
Step 1: Understand clearing a bit
To clear a bit, we AND with a mask that has 0 at that bit and 1s elsewhere.
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.
Final Answer:
num = num & ~(1 << 3); -> Option B
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
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.
Step 2: Apply XOR to toggle bit 1
1 << 1 is 0010. XOR toggles bit 1: 1010 ^ 0010 = 1000 (binary) which is 8 decimal.
Final Answer:
8 -> Option D
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
Step 1: Analyze the operation used
The code uses AND with 1 << k, which keeps only the k-th bit and clears others.
Step 2: Understand toggle operation
Toggle requires XOR, not AND. AND here does not toggle but masks all bits except bit 2.
Final Answer:
It clears all bits except the 2nd bit instead of toggling -> Option A
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
Step 1: Check if 0th bit is set
Use (num & (1 << 0)) != 0 to test if bit 0 is 1.
Step 2: Toggle bit 0 only if set
If bit 0 is set, toggle it with XOR; else keep num unchanged.
Final Answer:
num = (num & (1 << 0)) != 0 ? num ^ (1 << 0) : num; -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.