Java Program to Print Bits That Need to Be Flipped to Convert a Number to Another Number

You are currently viewing Java Program to Print Bits That Need to Be Flipped to Convert a Number to Another Number

Java program to print bits that need to be flipped to convert a number to another number

// 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

Ranjith

Hi, I'm Manoj a full-time Blogger, YouTuber, Affiliate Marketer, & founder of Coding Diksha. Here, I post about programming to help developers.

Leave a Reply