Bird
0
0
DSA Cprogramming~20 mins

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

Choose your learning style9 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 initial integer value 8 (binary 1000), what is the output after setting the 3rd bit (0-based from right)?
DSA C
int x = 8; // binary 1000
int bit = 3;
x = x | (1 << bit);
printf("%d\n", x);
A8
B12
C16
D24
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 2nd bit?
Given the integer value 15 (binary 1111), what is the output after clearing the 2nd bit (0-based from right)?
DSA C
int x = 15; // binary 1111
int bit = 2;
x = x & ~(1 << bit);
printf("%d\n", x);
A7
B15
C11
D8
Attempts:
2 left
💡 Hint
Clearing a bit means setting it to 0 using AND with the negation of the bit mask.
Predict Output
advanced
2:00remaining
What is the output after toggling the 1st bit?
Given the integer value 10 (binary 1010), what is the output after toggling the 1st bit (0-based from right)?
DSA C
int x = 10; // binary 1010
int bit = 1;
x = x ^ (1 << bit);
printf("%d\n", x);
A14
B8
C10
D12
Attempts:
2 left
💡 Hint
Toggling a bit flips it: if it was 1, it becomes 0; if 0, it becomes 1.
🧠 Conceptual
advanced
2:00remaining
Which operation clears a specific bit in an integer?
You want to clear (set to 0) the bit at position k in an integer x. Which of the following operations correctly does this?
Ax = x | (1 << k);
Bx = x & (1 << k);
Cx = x ^ (1 << k);
Dx = x & ~(1 << k);
Attempts:
2 left
💡 Hint
Clearing a bit means making sure that bit is 0 while keeping others unchanged.
🔧 Debug
expert
2:00remaining
Why does this code fail to toggle the 4th bit?
Consider this code snippet intended to toggle the 4th bit of x: int x = 20; int bit = 4; x = x ^ 1 << bit; printf("%d\n", x); Why might this code not work as expected?
DSA C
int x = 20;
int bit = 4;
x = x ^ 1 << bit;
printf("%d\n", x);
AOperator precedence causes the XOR to apply before the shift, so the wrong bit is toggled.
BThe bit index 4 is out of range for an int, causing undefined behavior.
CThe code is missing parentheses around the shift operation, causing a syntax error.
DThe variable x is not initialized before use.
Attempts:
2 left
💡 Hint
Check operator precedence between ^ and << in C.