Bird
Raised Fist0
DSA Javaprogramming~3 mins

Why Check if Number is Even or Odd Using Bits in DSA Java?

Choose your learning style10 modes available
The Big Idea

Discover how a tiny bit can save you from slow math every time!

The Scenario

Imagine you want to quickly tell if a number is even or odd by looking at it. You might try dividing it by 2 and checking the remainder. But what if you have to do this for thousands of numbers very fast?

The Problem

Using division and modulus operations repeatedly can be slow and use more computer power. It also takes more steps and can cause delays if done many times. This makes your program less efficient and slower.

The Solution

Using bits, you can check if a number is even or odd by looking at just one tiny part of it: the last bit. If the last bit is 0, the number is even; if it is 1, the number is odd. This is super fast and uses very little power.

Before vs After
✗ Before
if (number % 2 == 0) {
    System.out.println("Even");
} else {
    System.out.println("Odd");
}
✓ After
if ((number & 1) == 1) {
    System.out.println("Odd");
} else {
    System.out.println("Even");
}
What It Enables

This lets you quickly and efficiently check even or odd status for huge lists of numbers or in performance-critical programs.

Real Life Example

In games or animations, you might want to quickly decide if a frame number is even or odd to change colors or effects without slowing down the game.

Key Takeaways

Manual division is slow for many checks.

Bitwise AND with 1 quickly tells even or odd.

Useful in fast, repeated number checks.

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 num is greater than 1
C. It shifts num one bit to the right
D. It adds 1 to num

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 is greater than 1
2. Which of the following Java code snippets correctly checks if an integer num is even using bitwise operators?
easy
A. if ((num & 0) == 1) { System.out.println("Even"); }
B. if ((num | 1) == 0) { System.out.println("Even"); }
C. if ((num & 1) == 0) { System.out.println("Even"); }
D. if ((num ^ 1) == 0) { System.out.println("Even"); }

Solution

  1. Step 1: Analyze bitwise AND with 1

    The expression num & 1 isolates the least significant bit. If it equals 0, the number is even.
  2. Step 2: Check correctness of conditions

    if ((num & 1) == 0) { System.out.println("Even"); } correctly checks if (num & 1) == 0 to print "Even". Other options misuse bitwise OR, AND with 0, or XOR, which do not correctly check evenness.
  3. Final Answer:

    if ((num & 1) == 0) { System.out.println("Even"); } -> Option C
  4. Quick Check:

    num & 1 == 0 means even [OK]
Hint: Use (num & 1) == 0 to check even numbers [OK]
Common Mistakes:
  • Using bitwise OR instead of AND
  • Comparing with wrong values like 1 when checking even
  • Using XOR incorrectly for even check
3. What is the output of the following Java code?
int num = 7;
if ((num & 1) == 0) {
    System.out.println("Even");
} else {
    System.out.println("Odd");
}
medium
A. Compilation error
B. Even
C. 0
D. Odd

Solution

  1. Step 1: Calculate bitwise AND of num and 1

    7 in binary is 0111. 0111 & 0001 = 0001, which equals 1.
  2. Step 2: Check condition and print output

    Since (num & 1) == 0 is false, the else block executes, printing "Odd".
  3. Final Answer:

    Odd -> Option D
  4. Quick Check:

    7 & 1 = 1 means odd [OK]
Hint: If num & 1 equals 1, print Odd; else Even [OK]
Common Mistakes:
  • Assuming 7 is even
  • Confusing bitwise AND with arithmetic AND
  • Expecting output 0 or error
4. Identify the error in the following Java code that tries to check if a number is odd using bits:
int num = 10;
if (num & 1 == 1) {
    System.out.println("Odd");
} else {
    System.out.println("Even");
}
medium
A. No error, code is correct
B. Missing parentheses around (num & 1)
C. Incorrect variable type for num
D. Using bitwise OR instead of AND

Solution

  1. Step 1: Analyze operator precedence in condition

    In Java, == has higher precedence than &. So num & 1 == 1 is treated as num & (1 == 1).
  2. Step 2: Fix condition with parentheses

    Since (1 == 1) is true (boolean), num & true is invalid. Correct syntax is (num & 1) == 1.
  3. Final Answer:

    Missing parentheses around (num & 1) -> Option B
  4. Quick Check:

    Use parentheses to ensure correct bitwise operation [OK]
Hint: Always parenthesize bitwise ops before comparison [OK]
Common Mistakes:
  • Ignoring operator precedence causing syntax errors
  • Using bitwise OR instead of AND
  • Assuming code compiles without parentheses
5. You want to write a Java method isEven(int num) that returns true if num is even and false if odd, using bitwise operators. Which implementation is correct?
hard
A. public boolean isEven(int num) { return (num & 1) == 0; }
B. public boolean isEven(int num) { return (num | 1) == 0; }
C. public boolean isEven(int num) { return (num ^ 1) == 0; }
D. public boolean isEven(int num) { return (num & 0) == 1; }

Solution

  1. Step 1: Understand bitwise check for even

    Even numbers have least significant bit 0, so (num & 1) == 0 returns true for even numbers.
  2. Step 2: Evaluate each option

    public boolean isEven(int num) { return (num & 1) == 0; } correctly returns true if num is even. Options A, B, and D use incorrect bitwise operations that do not reliably check evenness.
  3. Final Answer:

    public boolean isEven(int num) { return (num & 1) == 0; } -> Option A
  4. Quick Check:

    Use (num & 1) == 0 to return true for even [OK]
Hint: Return (num & 1) == 0 for even check in method [OK]
Common Mistakes:
  • Using bitwise OR or XOR incorrectly
  • Comparing with wrong values
  • Returning wrong boolean for even check
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