×

# Java program to count the number of bits to be flipped to convert a number to another number

Given/input a number, we have to count the number of bits to be flipped to convert a number to another number.
Submitted by Nidhi, on March 12, 2022

## Problem statement

In this program, we will read 2 integer numbers from the user. Then we will count the number of bits to be flipped to get the 2nd number from the 1st number.

## Java program to count the number of bits to be flipped to convert a number to another number

The source code to count the number of bits to be flipped to convert a number to another number is given below. The given program is compiled and executed successfully.

```// Java program to count the number of bits to be flipped
// to convert a number to another number

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner SC = new Scanner(System.in);

int num1 = 0;
int num2 = 0;

int cnt = 0;
int lsb1 = 0;
int lsb2 = 0;

System.out.printf("Enter Number1: ");
num1 = SC.nextInt();

System.out.printf("Enter Number2: ");
num2 = SC.nextInt();

while ((num1 > 0) || (num2 > 0)) {
lsb1 = num1 & 1;
lsb2 = num2 & 1;

if (lsb1 != lsb2)
cnt++;

num1 = num1 >> 1;
num2 = num2 >> 1;
}
System.out.printf("Number of bits flipped: %d\n", cnt);
}
}
```

### Output

```Enter Number1: 11
Enter Number2: 15
Number of bits flipped: 1
```

## Explanation

In the above program, we imported the java.util.Scanner package to read the variable's value from the user. And, created a public class Main. It contains a static method main().

The main() method is an entry point for the program. Here, we read 2 integer numbers from the user. Then we counted the total number of bits to be flipped got the 2nd number from the 1st number and printed the result.