C Program to Check if Two Numbers are Equal using Bitwise Operators

In this article, we will write a C program to check if two numbers are equal or not using the bitwise XOR operator.

The program takes two numbers from the user as input and prints on the screen if they are equal or not.

Sample Input:

Enter First Number: 10
Enter Second Number: 20

Output:

Numbers are not equal

The basic idea behind checking if two numbers are equal or not using the bitwise XOR(^) is that if two numbers are equal, their bitwise XOR result will always be zero.

The output of XOR is true(1) only when the two input bits are different. If both bits are same(either 0 or 1), their XOR is always false(0). See the truth table below:

Input1Input2Output(XOR)
000
011
101
110

From the above truth table, you can see that if two input bits are same, their XOR will always be zero. This means if we have two equal numbers and we perform the bitwise XOR operation on them, the result will always be zero.

Bitwise XOR to check if two numbers are equal

As you can see from the above image, the bitwise XOR of 2^2 is zero whereas the bitwise XOR of 2^3 is non-zero.

The following C program shows how you can use the bitwise XOR(^) operator to check if two numbers are equal or not:

// C program to check if two numbers are equal
// using bitwise XOR(^) operator
#include <stdio.h>

int main() {

    int num1, num2, res;

    printf("Enter First Number: ");
    scanf("%d", &num1);

    printf("Enter Second Number: ");
    scanf("%d", &num2);

    // Peform bitwise XOR
    res = num1 ^ num2;

    // Check if XOR is zero
    if (res == 0) {
        printf("Both numbers are equal.");
    } else {
        printf("Numbers are not equal");
    }

    return 0;

}

Output:

Enter First Number: 10
Enter Second Number: 20
Numbers are not equal

Code Explanation:

  • The program takes two inputs from the user and stores them in the num1 and num2 variables respectively.
  • To check if two numbers are equal or not, we performed the bitwise XOR(^) on them. If both numbers are equal, their bitwise XOR(^) will be zero, otherwise, it will be a non-zero value.
  • If the result of XOR is zero, the if block’s code is executed, otherwise, the else block’s code is executed.
  • Finally, the output is printed on the screen using the printf() function.

Thanks for reading.

Author

  • Manoj Kumar

    Hi, My name is Manoj Kumar. I am a full-stack developer with a passion for creating robust and efficient web applications. I have hands-on experience with a diverse set of technologies, including but not limited to HTML, CSS, JavaScript, TypeScript, Angular, Node.js, Express, React, and MongoDB.

    View all posts