Our social:

Checking if a number is Even or Odd using Bitwise Operator

Even Number: Any integer that is divisible by 2 is called even number. For example: 2,4,6,20 etc. are even numbers.

Odd Number: Any integer that is not divisible by 2, is called odd number. For example: 1, 3, 5, 7, 9 etc. are odd numbers.



In C/C++ or Java language, we can check whether a number is even or odd by using modulus operator. If an integer mod 2 is 0 then, it is even and if an integer mod 2 is 1 then, it is an odd number.

Even or Odd number can be tested by bitwise operator too. Bitwise & ( AND ) operator can be used to check for even or odd. If ANDing an integer by 1 results 1 then the integer is ODD else ( result 0 ) the integer is EVEN. But how does it work? Let's have a look at couple of examples. Let's take 9 as odd number and 14 as even number.

For 9:

9 ->        1 0 0 1
1 ->     &  0 0 0 1
-------------------
result->    0 0 0 1

So 9 AND 1 gives us 1, as the right most bit of every odd number is 1.

For 14:

14 ->      1 1 1 0
1  ->   &  0 0 0 1
------------------
result->   0 0 0 0

So 14 AND 1 gives us 0, as the right most bit of every even number is 0.

C Programming Implementation:

#include <stdio.h>

int main()
{
    int x;
    printf("Enter a number: ");
    scanf("%d", &x);
    if(x&1)
        printf("%d is ODD\n", x);
    else
        printf("%d is EVEN\n", x);
    return 0;
}