Bird
Raised Fist0
DSA Cprogramming~30 mins

Bit Manipulation Basics AND OR XOR NOT Left Right Shift in DSA C - Build from Scratch

Choose your learning style10 modes available
Bit Manipulation Basics AND OR XOR NOT Left Right Shift
📖 Scenario: Imagine you are working with a simple device that stores settings as bits in a number. Each bit can be turned on or off to control different features. You want to learn how to change these bits using basic bit operations.
🎯 Goal: You will create a small C program that uses bit manipulation operators: AND, OR, XOR, NOT, left shift, and right shift. You will see how these operators change the bits of numbers step-by-step.
📋 What You'll Learn
Create two integer variables with exact values
Create a variable to hold the result of bit operations
Use bitwise AND, OR, XOR, NOT, left shift, and right shift operators
Print the results of each operation
💡 Why This Matters
🌍 Real World
Bit manipulation is used in low-level programming, device control, and performance optimization where direct control of bits is needed.
💼 Career
Understanding bitwise operations is important for embedded systems developers, systems programmers, and anyone working with hardware or performance-critical code.
Progress0 / 4 steps
1
Create two integer variables
Create two integer variables called a and b with values 12 and 5 respectively.
DSA C
Hint

Use int a = 12; and int b = 5; to create the variables.

2
Create a variable for results
Create an integer variable called result and set it to 0.
DSA C
Hint

Use int result = 0; to create the variable.

3
Apply bitwise operations
Use the variables a and b to perform these bitwise operations and store each result in result: AND, OR, XOR, NOT of a, left shift a by 2, and right shift b by 1. Write one line for each operation.
DSA C
Hint

Use & for AND, | for OR, ^ for XOR, ~ for NOT, << for left shift, and >> for right shift.

4
Print the results of each operation
Print the results of each bitwise operation in order: AND, OR, XOR, NOT of a, left shift a by 2, and right shift b by 1. Use printf with the format "%d\n" for each result.
DSA C
Hint

Use printf("%d\n", result); after each operation to print the result on a new line.

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