Home »
Java Programs »
Java Basic Programs
Java program to print bits that need to be flipped to convert a number to another number
Given/input a number, we have to print bits that need 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 print bits to be flipped to get the 2nd number from the 1st number.
Source Code
The source code to print bits that need to be flipped to convert a number to another number is given below. The given program is compiled and executed successfully.
// Java program to print bits that needs 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 bitNum = 0;
int lsb1 = 0;
int lsb2 = 0;
System.out.printf("Enter Number1: ");
num1 = SC.nextInt();
System.out.printf("Enter Number2: ");
num2 = SC.nextInt();
System.out.printf("Bits needs to be changed are:\n");
while ((num1 > 0) || (num2 > 0)) {
lsb1 = num1 & 1;
lsb2 = num2 & 1;
if (lsb1 != lsb2)
System.out.printf("%d ", bitNum);
num1 = num1 >> 1;
num2 = num2 >> 1;
bitNum++;
}
}
}
Output
Enter Number1: 11
Enter Number2: 17
Bits needs to be changed are:
1 3 4
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 printed bits that need to be flipped to get the 2nd number from the 1st number.
Java Basic Programs »