Bird
Raised Fist0
DSA Cprogramming~10 mins

Bit Manipulation Basics AND OR XOR NOT Left Right Shift in DSA C - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to perform bitwise AND on two integers a and b.

DSA C
int result = a [1] b;
Drag options to blanks, or click blank then click option'
A|
B&
C^
D~
Attempts:
3 left
💡 Hint
Common Mistakes
Using | (bitwise OR) instead of & (bitwise AND).
Using ^ (bitwise XOR) which returns 1 only if bits differ.
2fill in blank
medium

Complete the code to perform a left shift by 2 bits on integer x.

DSA C
int shifted = x [1] 2;
Drag options to blanks, or click blank then click option'
A<<
B>>
C&
D|
Attempts:
3 left
💡 Hint
Common Mistakes
Using >> (right shift) instead of << (left shift).
Using bitwise AND or OR operators mistakenly.
3fill in blank
hard

Fix the error in the code to perform bitwise NOT on variable val.

DSA C
int result = [1]val;
Drag options to blanks, or click blank then click option'
A~
B|
C&
D^
Attempts:
3 left
💡 Hint
Common Mistakes
Using & or | which are AND and OR operators.
Using ^ which is XOR, not NOT.
4fill in blank
hard

Fill both blanks to create a mask that sets the 3rd bit of number num using bitwise OR.

DSA C
int mask = 1 [1] 2;
int result = num [2] mask;
Drag options to blanks, or click blank then click option'
A<<
B>>
C|
D&
Attempts:
3 left
💡 Hint
Common Mistakes
Using right shift instead of left shift for mask.
Using AND instead of OR to set the bit.
5fill in blank
hard

Fill all three blanks to create a mask for the 1st bit, toggle the 1st bit of variable val using XOR, and isolate the 1st bit using AND.

DSA C
int mask = 1 [1] 0;
int toggled = val [2] mask;
int isolated = val [3] mask;
Drag options to blanks, or click blank then click option'
A<<
B^
C&
D|
Attempts:
3 left
💡 Hint
Common Mistakes
Using OR instead of XOR to toggle bits.
Using right shift instead of left shift for mask.

Practice

(1/5)
1. What is the result of the bitwise AND operation between 5 and 3? (5 = 0101, 3 = 0011 in binary)
easy
A. 0
B. 1
C. 6
D. 7

Solution

  1. Step 1: Convert numbers to binary

    5 in binary is 0101, and 3 in binary is 0011.
  2. Step 2: Perform bitwise AND operation

    0101 AND 0011 = 0001 (only bits set in both numbers remain set).
  3. Final Answer:

    1 -> Option B
  4. Quick Check:

    5 & 3 = 1 [OK]
Hint: AND keeps bits set in both numbers only [OK]
Common Mistakes:
  • Confusing AND with OR operation
  • Not converting decimal to binary correctly
  • Mixing bit positions during calculation
2. Which of the following is the correct syntax for left shifting the integer x by 2 bits in C?
easy
A. x >> 2;
B. x <<< 2;
C. x << 2;
D. x >> 2 <<;

Solution

  1. Step 1: Understand left shift operator in C

    The left shift operator is written as << and shifts bits to the left.
  2. Step 2: Check syntax correctness

    x << 2; uses x << 2; which correctly shifts bits of x left by 2 positions.
  3. Final Answer:

    x << 2; -> Option C
  4. Quick Check:

    Left shift syntax = x << 2; [OK]
Hint: Use << for left shift, >> for right shift [OK]
Common Mistakes:
  • Using >>> which is invalid in C
  • Confusing left shift with right shift
  • Incorrect operator placement or syntax
3. What is the output of the following C code?
int x = 6; // binary 0110
int y = x ^ 3; // 3 = 0011
printf("%d", y);
medium
A. 9
B. 7
C. 1
D. 5

Solution

  1. Step 1: Convert numbers to binary and apply XOR

    6 in binary is 0110, 3 is 0011. XOR operation: 0110 ^ 0011 = 0101.
  2. Step 2: Calculate decimal value of XOR result

    0101 in binary equals 5 decimal.
  3. Final Answer:

    5 -> Option D
  4. Quick Check:

    6 ^ 3 = 5 [OK]
Hint: XOR flips bits where bits differ [OK]
Common Mistakes:
  • Mixing XOR with OR or AND
  • Incorrect binary conversion
  • Misreading bit positions
4. Identify the error in the following C code snippet:
int x = 8;
int y = ~x << 1;
printf("%d", y);
medium
A. Using ~ operator without parentheses causes wrong shift
B. Missing semicolon after declaration
C. Shift operator << cannot be used with ~ operator
D. No error, code runs correctly

Solution

  1. Step 1: Understand operator precedence

    The bitwise NOT (~) has higher precedence than shift (<<), so ~x is evaluated first.
  2. Step 2: Check if parentheses needed

    Without parentheses, ~x is computed, then shifted left. This is correct but may cause confusion if intended differently.
  3. Step 3: Identify common mistake

    If intention was to shift x first then NOT, parentheses are needed. Otherwise, no syntax error but logic may be wrong.
  4. Final Answer:

    Using ~ operator without parentheses causes wrong shift -> Option A
  5. Quick Check:

    Operator precedence matters; use parentheses [OK]
Hint: Use parentheses to control bitwise operation order [OK]
Common Mistakes:
  • Ignoring operator precedence
  • Assuming shift applies before NOT
  • Thinking code has syntax error when it doesn't
5. Given an integer n, which expression correctly checks if the 3rd bit (from right, zero-based) is set (1)?
hard
A. (n & (1 << 3)) != 0
B. (n | (1 << 3)) == 0
C. (n ^ (1 << 3)) == 0
D. (n >> 3) & 1 == 0

Solution

  1. Step 1: Understand bit position and mask

    The 3rd bit (zero-based) means bit at position 3. Mask is 1 shifted left by 3: (1 << 3) = 8.
  2. Step 2: Check if bit is set using AND

    Using (n & (1 << 3)) checks if that bit is 1. If result is not zero, bit is set.
  3. Final Answer:

    (n & (1 << 3)) != 0 -> Option A
  4. Quick Check:

    Bit check uses AND with mask [OK]
Hint: Use AND with (1 << bit_position) to check bit [OK]
Common Mistakes:
  • Using OR or XOR instead of AND for checking
  • Wrong bit position shift
  • Comparing shifted bit to zero 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