# C program to Check if a number is even or odd using bitwise operator

In this tutorial, we will learn how to find if a number is *odd* or *even* using Bitwise operator. We know that if a number is divisible by *2*, it is an *even* number and if not it is called an *odd* number. We can easily divide the number by *2* and check if it is odd or even using a modulus, but in this tutorial, we will learn how to use one bitwise operator to find out the same.

## Explanation :

Bitwise AND operator is used to find out if a number is even or odd. This operator is denoted by *&*. We will do *AND* operation of the number with *1*. Based on this result, we can say the number is *even* or *odd*. Let’s try it with few numbers :

8 :

8 => 1 0 0 0 1 => 0 0 0 1 ------------- 8&1 => 0 0 0 0

9 :

9 => 1 0 0 1 1 => 0 0 0 1 ------------- 9&1 => 0 0 0 1

22 :

22 => 1 0 1 1 0 1 => 0 0 0 0 1 ----------------- 22&1 => 0 0 0 0 0

111 :

111 => 1 1 0 1 1 1 1 1 => 0 0 0 0 0 0 1 ---------------------- 111&1 => 0 0 0 0 0 0 1

36 :

36 => 1 0 0 1 0 0 1 => 0 0 0 0 0 1 ------------------- 36&1 => 0 0 0 0 0 0

1 :

1 => 0 0 0 1 1 => 0 0 0 1 --------------- 1&1 => 0 0 0 1

From the above examples, we have seen that :

For *8*, if we *AND* it with *1*, the result is *0*. Same result for *22* and *36*. But for *9,111,1* the result is *1*.

So if we perform *AND* with a number and *1*, the result is *1* if the number is odd, and *0* if the number is even.

Now, let’s try to implement it in C.

### C program :

#include <stdio.h> int main() { int number; printf("Enter a number to check: "); scanf("%d", &number); if (number & 1) printf("%d is odd.\n", number); else printf("%d is even.\n", number); return 0; }

Few sample outputs of the above program :

Enter a number to check: 32 32 is even. Enter a number to check: 111 111 is odd. Enter a number to check: 10 10 is even. Enter a number to check: 45 45 is odd. Enter a number to check: 29 29 is odd.

### Conclusion :

In this tutorial, we have learned how to find out if a number is even or odd easily in C using Bitwise operator. This process is useful to quickly check a number instead of using the modulo operator. Try to run the program and drop one comment below if you have any queries.

You might also like :

- C program to swap two numbers using bitwise XOR operation
- C program to find the sum of first n odd numbers starting from 1
- C program to separate even and odd numbers from an array
- C program to convert a decimal number to octal
- C program to print alternate numbers of an user input array
- C program to swap two numbers using call by reference