Odd or Even - bitwise solution

We can solve the odd or even problem more efficiently using bitwise operators.


Let’s represent numbers in binary format and we will find some logic to solve this problem.

Pictorial Explanation

Odd or Even using bitwise




Analysis

If we observe the above diagram, we can conclude that

LSB (least significant bit) of Odd number is 1

LSB of even number is 0.


Now, all we need to do is, just check the LSB of a number. If it is 1, it is Odd number. If it is 0, the number is even.

Using Bit-wise AND operator, we can check whether the LSB is 0 or 1.


Example

Let’s take number 10. We have to check whether the LSB is 1 or 0.

To check that,

We need to create a bit mask with LSB bit as 1 and all bits are 0. Because we are going to check only the LSB bit.

So, Bit Mask will be,

(00000000000000000000000000000001) 2 which 110

Now do Number & Bit Mask,

if result is 1, it is an Odd number.

else, it is an even number.




Solution

Get a number from the user

If number & 1 is 0

    Even

Else

    Odd

Pictorial Explanation

And mask for bitwise odd or even




Program

Example

#include<stdio.h>

int main()
{
    int number;
 
    scanf("%d",&number);
 
    if((number & 1) == 0)
        printf("Even");
    else
        printf("Odd");
  
    return 0;
}