Bird
Raised Fist0
Cprogramming~10 mins

Bitwise AND, OR, XOR in C - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Bitwise AND, OR, XOR
Start with two integers A and B
↓
Apply Bitwise AND (&)
→Result: bits set only if both bits are 1
↓
Apply Bitwise OR (|)
→Result: bits set if either bit is 1
↓
Apply Bitwise XOR (^)
→Result: bits set if bits differ
↓
End
Start with two numbers, then apply AND, OR, XOR bit by bit to get new results.
Execution Sample
C
int a = 6;  // 0110 in binary
int b = 11; // 1011 in binary
int and_result = a & b;
int or_result = a | b;
int xor_result = a ^ b;
This code calculates bitwise AND, OR, and XOR of 6 and 11.
Execution Table
StepOperationa (binary)b (binary)Bitwise OperationResult (binary)Result (decimal)
1Bitwise AND011010110110 & 101100102
2Bitwise OR011010110110 | 1011111115
3Bitwise XOR011010110110 ^ 1011110113
4End-----
💡 All bitwise operations completed on inputs a=6 and b=11.
Variable Tracker
VariableStartAfter ANDAfter ORAfter XOR
a6 (0110)6 (0110)6 (0110)6 (0110)
b11 (1011)11 (1011)11 (1011)11 (1011)
and_resultN/A2 (0010)2 (0010)2 (0010)
or_resultN/AN/A15 (1111)15 (1111)
xor_resultN/AN/AN/A13 (1101)
Key Moments - 3 Insights
Why does bitwise AND result in 2 instead of 6 or 11?
Because bitwise AND sets bits only where both a and b have 1s. See execution_table row 1 where 0110 & 1011 = 0010 (decimal 2).
Why is the OR result 15, which is larger than both inputs?
Bitwise OR sets bits if either input bit is 1, combining all bits from both numbers. Row 2 shows 0110 | 1011 = 1111 (decimal 15).
What does XOR do differently from OR?
XOR sets bits only where bits differ, not where both are 1. Row 3 shows 0110 ^ 1011 = 1101 (decimal 13), different from OR.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the decimal result of the bitwise AND operation?
A6
B2
C11
D15
💡 Hint
Check execution_table row 1 under 'Result (decimal)' for AND operation.
At which step does the bitwise OR operation occur?
AStep 2
BStep 3
CStep 1
DStep 4
💡 Hint
Look at the 'Operation' column in execution_table to find OR operation.
If variable a was 7 (0111) instead of 6, what would be the new bitwise AND result with b=11?
A2 (0010)
B1 (0001)
C3 (0011)
D4 (0100)
💡 Hint
Bitwise AND sets bits where both numbers have 1s; compare 0111 & 1011.
Concept Snapshot
Bitwise AND (&), OR (|), XOR (^) work on each bit of two integers.
AND sets bit if both bits are 1.
OR sets bit if either bit is 1.
XOR sets bit if bits differ.
Used for low-level data manipulation.
Full Transcript
This lesson shows how bitwise AND, OR, and XOR work in C. We start with two integers, 6 and 11, and look at their binary forms. Bitwise AND compares each bit and sets the result bit to 1 only if both bits are 1, resulting in 2. Bitwise OR sets bits to 1 if either bit is 1, resulting in 15. Bitwise XOR sets bits to 1 only if the bits differ, resulting in 13. The execution table traces each step with binary and decimal results. The variable tracker shows how variables change after each operation. Key moments clarify common confusions about how these operators work. The quiz tests understanding by asking about results and changes. This helps beginners see exactly how bits combine in these operations.

Practice

(1/5)
1. Which bitwise operator in C returns 1 only if both corresponding bits of two numbers are 1?
a & b means:
easy
A. Bitwise AND
B. Bitwise OR
C. Bitwise XOR
D. Logical AND

Solution

  1. Step 1: Understand bitwise AND operation

    Bitwise AND compares each bit of two numbers and returns 1 only if both bits are 1.
  2. Step 2: Compare with other operators

    Bitwise OR returns 1 if either bit is 1, XOR returns 1 if bits differ, and logical AND is different (works on boolean values).
  3. Final Answer:

    Bitwise AND -> Option A
  4. Quick Check:

    AND = & = Bitwise AND [OK]
Hint: AND means both bits must be 1 to get 1 [OK]
Common Mistakes:
  • Confusing bitwise AND with logical AND (&&)
  • Mixing AND with OR or XOR operators
  • Thinking bitwise AND returns 1 if either bit is 1
2. Which of the following is the correct syntax to perform bitwise XOR on two integers a and b in C?
easy
A. a ^ b
B. a && b
C. a | b
D. a & b

Solution

  1. Step 1: Identify bitwise XOR operator

    In C, the caret symbol (^) is used for bitwise XOR operation.
  2. Step 2: Differentiate from other operators

    && is logical AND, | is bitwise OR, & is bitwise AND, so only ^ is XOR.
  3. Final Answer:

    a ^ b -> Option A
  4. Quick Check:

    ^ means XOR in C [OK]
Hint: XOR uses ^ symbol in C [OK]
Common Mistakes:
  • Using && instead of ^ for XOR
  • Confusing | (OR) with ^ (XOR)
  • Using & (AND) instead of ^ (XOR)
3. What is the output of the following C code?
int a = 6;  // binary 0110
int b = 11; // binary 1011
printf("%d", a & b);
medium
A. 3
B. 15
C. 7
D. 2

Solution

  1. Step 1: Convert numbers to binary

    6 in binary is 0110, 11 in binary is 1011.
  2. Step 2: Perform bitwise AND

    0110 & 1011 = 0010 (only bits where both are 1 remain 1).
  3. Step 3: Convert result back to decimal

    0010 in decimal is 2.
  4. Final Answer:

    2 -> Option D
  5. Quick Check:

    6 & 11 = 2 [OK]
Hint: AND keeps bits set in both numbers only [OK]
Common Mistakes:
  • Confusing AND with OR or XOR results
  • Not converting binary back to decimal correctly
  • Mixing up bit positions
4. Identify the error in this C code snippet that tries to perform bitwise OR:
int a = 5;
int b = 9;
int c = a | b;
printf("%d", c);
medium
A. Missing semicolon after variable declarations
B. Incorrect operator used for bitwise OR
C. No error, code will print correct output
D. printf format specifier should be %x for bitwise OR

Solution

  1. Step 1: Check syntax correctness

    All lines have semicolons; operator | is correct for bitwise OR.
  2. Step 2: Verify printf usage

    %d is correct to print integer decimal value; no error present.
  3. Final Answer:

    No error, code will print correct output -> Option C
  4. Quick Check:

    Bitwise OR uses | and %d prints decimal [OK]
Hint: Bitwise OR uses | and %d prints decimal [OK]
Common Mistakes:
  • Thinking | is wrong operator for OR
  • Believing %x is mandatory for bitwise results
  • Missing semicolons (not the case here)
5. Given two integers x = 12 and y = 10, which expression toggles the bits of x where y has bits set, using bitwise XOR?
hard
A. x | y
B. x ^ y
C. x & y
D. ~x ^ y

Solution

  1. Step 1: Understand toggling bits with XOR

    Bitwise XOR toggles bits where the second operand has 1s.
  2. Step 2: Analyze each option

    x & y keeps bits set in both; x | y sets bits set in either; ~x ^ y is unrelated toggling with complement.
  3. Final Answer:

    x ^ y -> Option B
  4. Quick Check:

    XOR toggles bits where second operand has 1 [OK]
Hint: XOR toggles bits where second number has 1s [OK]
Common Mistakes:
  • Using AND or OR instead of XOR for toggling
  • Confusing complement operator ~ with XOR
  • Not understanding toggling effect of XOR
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