Bird
Raised Fist0
DSA Pythonprogramming~10 mins

Check if Number is Even or Odd Using Bits in DSA Python - Execution Trace

Choose your learning style10 modes available
Concept Flow - Check if Number is Even or Odd Using Bits
Start with number n
↓
Extract least significant bit (n & 1)
↓
Is bit 0?
Yes→Number is Even
No↓
Number is Odd
We check the last bit of the number using bitwise AND with 1. If it is 0, the number is even; if 1, it is odd.
Execution Sample
DSA Python
n = 5
if (n & 1) == 0:
    print("Even")
else:
    print("Odd")
This code checks the last bit of 5 to decide if it is even or odd.
Execution Table
StepOperationValue of nBitwise n & 1Condition (n & 1 == 0)ResultOutput
1Start5
2Calculate n & 151
3Check if n & 1 == 051FalseOddOdd
4End51FalseOddOdd
💡 Condition n & 1 == 0 is False, so number is Odd and output is printed.
Variable Tracker
VariableStartAfter Step 2After Step 3Final
n5555
n & 1111
Condition (n & 1 == 0)FalseFalse
OutputOddOdd
Key Moments - 3 Insights
Why do we use 'n & 1' to check even or odd?
Because the least significant bit (rightmost bit) of a binary number tells if it is even (0) or odd (1). See execution_table step 2 where n & 1 extracts this bit.
Why does 'n & 1 == 0' mean the number is even?
If the last bit is 0, the number is divisible by 2, so it is even. This is shown in execution_table step 3 where the condition is checked.
What happens if the number is 0?
0 & 1 equals 0, so the condition is True and the number is even. This is consistent with the logic in execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'n & 1' at step 2 for n=5?
A1
B0
C5
DUndefined
💡 Hint
Check the 'Bitwise n & 1' column at step 2 in execution_table.
At which step does the condition 'n & 1 == 0' evaluate to False?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look at the 'Condition (n & 1 == 0)' column in execution_table.
If n was 4 instead of 5, what would be the output according to the execution_table logic?
AOdd
BError
CEven
DNo output
💡 Hint
Recall that even numbers have last bit 0, so n & 1 == 0 would be True.
Concept Snapshot
Check even or odd using bits:
Use 'n & 1' to get last bit.
If last bit is 0, number is even.
If last bit is 1, number is odd.
Fast and efficient bitwise check.
Full Transcript
This concept shows how to check if a number is even or odd using bitwise operations. We use the bitwise AND operator '&' with 1 to extract the least significant bit of the number. If this bit is 0, the number is even; if it is 1, the number is odd. The execution table traces the steps for n=5, showing the calculation of n & 1, the condition check, and the final output. The variable tracker shows how variables change during execution. Key moments clarify why the last bit determines even or odd and what happens with zero. The visual quiz tests understanding of these steps. This method is a quick and efficient way to check parity without division or modulus.

Practice

(1/5)
1. What does the expression num & 1 check when determining if a number is even or odd?
easy
A. It checks if the least significant bit of num is 1, indicating odd number.
B. It checks if the number is greater than 1.
C. It shifts the bits of num to the right by 1.
D. It adds 1 to the number.

Solution

  1. Step 1: Understand bitwise AND operation

    The expression num & 1 performs a bitwise AND between num and 1, which isolates the least significant bit (rightmost bit) of num.
  2. Step 2: Interpret the least significant bit

    If the least significant bit is 1, the number is odd; if it is 0, the number is even.
  3. Final Answer:

    It checks if the least significant bit of num is 1, indicating odd number. -> Option A
  4. Quick Check:

    num & 1 = 1 means odd [OK]
Hint: Check last bit with & 1; 1 means odd, 0 means even [OK]
Common Mistakes:
  • Thinking & 1 shifts bits instead of checking last bit
  • Confusing bitwise AND with addition
  • Assuming & 1 checks if number > 1
2. Which of the following Python code snippets correctly checks if a number n is even using bitwise operators?
easy
A. if n | 1 == 0: print('Even')
B. if n & 0 == 1: print('Even')
C. if n & 1 == 0: print('Even')
D. if n ^ 1 == 0: print('Even')

Solution

  1. Step 1: Analyze each bitwise operation

    if n & 1 == 0: print('Even') uses n & 1 == 0, which checks if the least significant bit is 0, meaning even number. The other options use incorrect bitwise operations or comparisons.
  2. Step 2: Confirm correct syntax and logic

    if n & 1 == 0: print('Even') correctly uses bitwise AND and compares to zero to detect even numbers.
  3. Final Answer:

    if n & 1 == 0: print('Even') -> Option C
  4. Quick Check:

    n & 1 == 0 means even [OK]
Hint: Use 'if n & 1 == 0' to check even numbers [OK]
Common Mistakes:
  • Using bitwise OR or XOR instead of AND
  • Comparing with wrong values like 1 instead of 0
  • Misplacing parentheses causing syntax errors
3. What will be the output of the following code?
def check_even_odd(num):
    if num & 1:
        return 'Odd'
    else:
        return 'Even'

print(check_even_odd(10))
print(check_even_odd(7))
medium
A. Odd Odd
B. Even Odd
C. Odd Even
D. Even Even

Solution

  1. Step 1: Evaluate check_even_odd(10)

    10 in binary ends with 0, so 10 & 1 = 0, condition is false, returns 'Even'.
  2. Step 2: Evaluate check_even_odd(7)

    7 in binary ends with 1, so 7 & 1 = 1, condition is true, returns 'Odd'.
  3. Final Answer:

    Even Odd -> Option B
  4. Quick Check:

    10 even, 7 odd [OK]
Hint: num & 1 true means odd, false means even [OK]
Common Mistakes:
  • Confusing return values for even and odd
  • Misreading bitwise AND result
  • Assuming & 1 returns boolean instead of int
4. Find the error in the following code that tries to print whether a number is even or odd using bits:
def is_even(num):
    if num & 1 = 0:
        return True
    else:
        return False

print(is_even(4))
medium
A. Using single '=' instead of '==' in the if condition
B. Using bitwise AND instead of bitwise OR
C. Missing colon after function definition
D. Incorrect indentation of return statements

Solution

  1. Step 1: Identify syntax error in if condition

    The condition uses single '=' which is assignment, not comparison. It should be '==' to compare values.
  2. Step 2: Confirm correct syntax for comparison

    Changing '=' to '==' fixes the syntax error and allows the function to work as intended.
  3. Final Answer:

    Using single '=' instead of '==' in the if condition -> Option A
  4. Quick Check:

    Use '==' for comparison, not '=' [OK]
Hint: Use '==' for comparison in if statements [OK]
Common Mistakes:
  • Using '=' instead of '==' in conditions
  • Confusing bitwise AND with OR
  • Ignoring syntax errors causing runtime failure
5. You want to filter a list of integers and keep only the odd numbers using bitwise operations. Which of the following code snippets correctly achieves this?
hard
A. odds = [x for x in numbers if x ^ 1 == 1]
B. odds = [x for x in numbers if x & 1 == 0]
C. odds = [x for x in numbers if x | 1 == 1]
D. odds = [x for x in numbers if x & 1 == 1]

Solution

  1. Step 1: Understand filtering condition for odd numbers

    Odd numbers have least significant bit 1, so x & 1 == 1 filters odd numbers.
  2. Step 2: Check each option's logic

    odds = [x for x in numbers if x & 1 == 1] correctly filters odd numbers. odds = [x for x in numbers if x & 1 == 0] filters even numbers. Options C and D use incorrect bitwise operations for this purpose.
  3. Final Answer:

    odds = [x for x in numbers if x & 1 == 1] -> Option D
  4. Quick Check:

    Filter odds with x & 1 == 1 [OK]
Hint: Use list comprehension with 'x & 1 == 1' to get odd numbers [OK]
Common Mistakes:
  • Using 'x & 1 == 0' which filters even numbers
  • Using bitwise OR or XOR incorrectly
  • Forgetting to compare with 1 explicitly
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